javascript - 无法使用 python cgi 将 javascript 发送的文本写入 .txt 文件

标签 javascript python xmlhttprequest cgi

我在尝试将从 javascript 发送的字符串变量写入 cgi 中的 .txt 文件时遇到错误。这是带有错误的 python cgi 代码:

          1  #!/usr/bin/python
          2
          3 import cgi, cgitb
          4 cgitb.enable()
          5
          6 print "Content-type: text/html"
          7 print
          8
          9 print "<html><head><title>Nimed</title></head><br/>"
         10  
         12 formdata = cgi.FieldStorage()
         13 tulemused = formdata.getvalue('tulemused')
         14 f = open('/home/t103692/public_html/prax3/tulemused.txt', 'a')
    =>   15 f.write(tulemused)
         16 f.close()
    f = <open file '/home/t103692/public_html/prax3/tulemused.txt', mode 'a'>, f.write =      <built-in method write of file object>, tulemused = None

    <type 'exceptions.TypeError'>: expected a character buffer object 
          args = ('expected a character buffer object',) 
          message = 'expected a character buffer object'

这是 javascript 代码,我在其中发送变量:

    function saadaTulemused() {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("POST","http://dijkstra.cs.ttu.ee/~t103692/cgi-bin/save.py", true);
    xmlhttp.setRequestHeader("content-type","application/x-www-form-urlencoded");
    xmlhttp.send(tulemused);
    }

“tulemused”是字符串变量,它已经包含一些不带空格的文本。

如何解决该错误?

最佳答案

tulemusedNone,您无法将其写入文件。

您需要实际从 JavaScript 处理程序发送 x-www-form-urlencoded 数据;目前您只发送值而没有其他任何内容。

在字符串中添加 'tulemused=' 前缀就足够了:

xmlhttp.send("tulemused=" + tulemused);

关于javascript - 无法使用 python cgi 将 javascript 发送的文本写入 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13543660/

相关文章:

javascript - 检测图像上/外部的点击不起作用

单连接上带有事务 block 的 Python Postgres 查询

python - Django - 在 DetailView 中过滤

Python:查找文本中的单词列表并返回其索引

javascript - js从html标签中获取值

javascript - Comet(长轮询)和 XmlHttpRequest 状态

javascript - 使用 jquery 我希望在输入为空时隐藏 div?

javascript - 什么限制适用于不透明的响应?

javascript - 在 D3 条形图中,y 轴序数比例未与条形正确对齐

javascript - AngularJS 中的 IE11 拒绝访问