Parseerror用ajax将数据推送到python脚本

时间:2014-04-03 09:38:42

标签: jquery python ajax apache cgi

我正在尝试使用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"

2 个答案:

答案 0 :(得分:1)

根据您的评论,问题似乎与您的Web服务器中的CGI配置有关,即将您的python文件作为静态文件而不是CGI进行管理。

查看本教程:http://www.tutorialspoint.com/python/python_cgi_programming.htm

您需要在此行中添加python CGI文件(或Win系统中的等效文件):

#!c:/Python30/python.exe -u

apache中的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。

答案 1 :(得分:0)

http://jsonlint.com/对您的数据有什么看法? 它可能不是解决方案。