我试图用Ajax将数据发送到python脚本,但是我一直得到一个"parsererror“和一个返回python脚本的responseText。
我尝试过各种组合,比如{"data":"data"},{data:"data"},{data: data}等等,但是没有什么效果。
也许你能看到问题所在
Ajax
var data = {
id: '20',
action: 'Test'
};
$.ajax({
type: "POST",
url: "./cgi-bin/datahandler.py",
data: data,
success: function (response) {
console.log(response);
},
error: function(response) {
console.log(response);
},
});Python
#!c:/Python27/python.exe -u
import cgi, cgitb
cgitb.enable()
data = cgi.FieldStorage()
print "Content-Type: text/html\n"
print "The id data is: " + data["id"].value
print "<br />"
print "The action data is: " + data["action"].value
print "<br />"
print data Apache
ScriptAlias /cgi-bin/ "c:/wamp/www/cgi-bin/"
AddHandler cgi-script .py
<Directory "c:/wamp/www/cgi-bin/">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>响应文本
"#!c:/Python27/python.exe -u import cgi, cgitb cgitb.enable() data = cgi.FieldStorage() print "Content-Type: text/html\n" print "The id data is: " + data["id"].value print "<br />" print "The action data is: " + data["action"].value print "<br />" print data"发布于 2014-04-03 10:08:32
根据您的评论,这个问题似乎与您的web服务器中的CGI配置有关,即将您的python文件管理为静态文件,而不是CGI。
看看本教程:programming.htm
您需要在python文件中添加这一行(或者在Win系统中添加一个类似的行):
#!c:/Python30/python.exe -uapache中的CGI配置可以类似于:
LoadModule cgi_module modules/mod_cgi.so
ScriptAlias /cgi-bin/ "c:/wamp/www/cgi-bin/"
<Directory "c:/wamp/www/cgi-bin/">
AllowOverride None
Order allow,deny
Allow from all
Options +ExecCGI
AddHandler cgi-script .py
</Directory>确保在目录配置之前加载module_cgi。
发布于 2014-04-03 09:56:51
http://jsonlint.com/对你的数据有什么看法?这可能不是解决办法。
https://stackoverflow.com/questions/22833602
复制相似问题