我正在尝试编写一个使用 JQuery 调用 python 脚本的简单 Web 应用程序。python 脚本以 JSON 格式返回数据。这是我的 Javascript 中的 ajax 调用:
console.log('before');
$.ajax({
dataType: "json",
url: "simple.py",
success: function() { alert("Success"); },
error: function(request, error) { console.log(request); }
});
console.log('after');
这是我的python脚本:
#!/usr/bin/env python
import json
l = "hello"
print json.dumps(l)
当我运行 Javascript 时,我得到一个“内部服务器错误”。如果我在 ajax 调用中将 dataType 更改为“脚本”或更改print
为return
.
当我改为使用像这样的纯 JSON 文件时,我从网上的一些示例中获得:
{
"one": "Singular sensation",
"two": "Beady little eyes",
"three": "Little birds pitch by my doorstep"
}
和dataType: "json"
,url: "test.json"
它工作正常。当我使用 python 脚本打印出一堆 HTML 而不是 JSON 时,它也可以正常工作。当我从命令行自行运行 simple.py 时,它会以应有的方式打印出结果,就好像没有任何问题一样。但是,由于某种原因,我的 JQuery 不会接收 JSON 数据。在 Web Inspector 的“Network”下,simple.py 的类型被列为 text/html,这似乎不正确。我认为这应该是 application/json 但我不确定如何更改它。
我正在使用 Mac OSx 附带的 Apache2 服务器,并且我已将所有网站文件放在 Library/WebServer/Documents 下。我正在通过“localhost”网址访问我的网站。
日志中的错误:
(8)Exec format error: exec of '/Library/WebServer/Documents/UBCNetworks/simple.py' failed, referer: localhost/UBCNetworks/index.html
.... Premature end of script headers: simple.py, referer: localhost/UBCNetworks/index.html