Python CGI Ajax调用导致内部服务器错误
我试图步入Web开发世界,并且在理解为什么我的基本hello世界脚本失败时遇到了一些麻烦。我有一个简单的AJAX调用来返回一小段HTML的python cgi脚本,但是调用失败,我得到“Internal Server Error”作为错误信息。这里是我的代码:Python CGI Ajax调用导致内部服务器错误
Python脚本:
#!/usr/local/bin/python
print "Content-Type: text/html\n"
print """\
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
"""
AJAX调用:
$(function(){
$('#clickme').click(function(){
$.ajax({
url: "cgi-bin/ajaxpost.cgi",
dataType: "html",
type: "POST",
success: function(response){
alert(response);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
});
});
而且这里是我的服务器错误日志说:
CGI ERROR: A system problem prevented your request from being completed., referer: [my test page]
Premature end of script headers: ajaxpost.cgi, referer: [my test page]
我双击我的服务器检查和“#!/ usr/local/bin/python”是python的正确路径。另外,他们说他们没有指定的cgi-bin文件夹,只要它具有.cgi扩展名,任何cgi都可以从任何文件夹运行。编辑:另外,我已经允许在服务器上执行.cgi。
我会继续承认我可能需要一个“解释它,就像我五岁”的答案。谢谢!
我刚刚才通过删除WinSCP赋予服务器并重新上传我的CGI文件工作它新鲜而不是只是在更新之间覆盖它。除此之外,我确保它以文本而不是二进制文件形式上传。我怀疑这可能是问题,因为它可能是保留Windows文本文件格式。我相信一个新秀的错误。谢谢您的帮助。
在第一行末尾有一个斜线字符。在三重引号内,这是一个字面斜线。去掉它。
这不是答案,虽然你是正确的,反斜杠是不合适的。 – 2013-03-15 20:02:38
感谢您的收获,不知道那是如何结束的。但仍然没有工作。 – egdetti 2013-03-15 20:38:19
需要两个\ n在
打印结束 “的Content-Type:HTML文本/ \ N” 的
而不是一个。
尝试:打印“内容类型:text/html的\ n \ n”个
我按照你的建议添加了一个额外的\ n,我仍然得到相同的错误。 – egdetti 2013-03-15 20:38:37
请..不要使用CGI。这太糟糕了。你可以在python中做webapps [** much,much nice **](http://flask.pocoo.org/) – ThiefMaster 2013-03-15 19:22:37
我同意python CGI是可怕的;检查你的shbang头文件中是否有不必要的换行符或空格。从你的代码看来,头文件和第一个'print'之间有一个空行 - 在截断它之后再试一次。 – thkang 2013-03-15 19:23:18
我已经删除了额外的行,无济于事。仍然得到相同的错误。 – egdetti 2013-03-15 19:31:14