我是python中的新手并且正在使用 Python 来从AJAX调用获取请求但是我得到了python的代码,因为它在 AJAX中输出,我不想要。
AJAX代码:
$.ajax({
type: "POST",
url: "hello.py",
datatype : "json",
data: { name: "nitin"}
})
.done(function(msg) {
console.log(msg);
$("div").html("Data : "+msg)
});
Python代码:
import sys
import cgi
sys.stdout.write("Content-Type: application/json")
sys.stdout.write("\n")
sys.stdout.write("\n")
form = cgi.FieldStorage()
sys.stdout.write(json.dumps({ 'data': form.getvalue('name')}))
输出: Data : import sys import cgi sys.stdout.write("Content-Type: application/json") sys.stdout.write("\n") sys.stdout.write("\n") form = cgi.FieldStorage() sys.stdout.write(json.dumps({ 'data': form.getvalue('name')}))
预期输出应为:
Data : Content-Type: application/json
nitin
答案 0 :(得分:1)
是你的python脚本标记为可执行文件?见this -
“Python脚本未被标记为可执行。当CGI脚本不可执行时,大多数Web服务器将让用户下载它,而不是运行它并将输出发送给用户。为了使CGI脚本能够在Unix上正常运行 - 像操作系统一样,需要设置+ x位。使用chmod a + x your_script.py可以解决这个问题。“
还有一个示例来测试您的服务器是否支持CGI -
https://docs.python.org/2/howto/webservers.html#simple-script-for-testing-cgi
答案 1 :(得分:0)
在 / home / * / public_html 下的 .htaccess 文件中添加以下2行。
Options +ExecCGI
AddHandler cgi-script .py
Python代码应该是这样的:
import sys
import cgi
sys.stdout.write("Content-Type: application/x-www-form-urlencoded")
sys.stdout.write("\n")
sys.stdout.write("\n")
form = cgi.FieldStorage()
name = form.getvalue('name')
print name
因为内容类型是application / x-www-form-urlencoded而不是application / json。我们正在获得形式价值。如果想要查看内容类型,只需 print form.headers
。