我有一个网站,它有对Python脚本的jQuery Ajax调用.当我调用它时,它会返回500错误.请注意,Python脚本本身在通过cron作业(job)提交时可以工作;只有当try 通过Ajax调用它时才会出现错误.
进行调用的HTML页面摘录:
<!DOCTYPE html>
<html>
<head>
<title>Python Test</title>
<script src="jquery-3.3.1.js"></script>
</head>
<body>
<div id="the_output">The text returned from the Python script goes here</div>
<script>
$.ajax({
url:"cgi-bin/PythonTest.py",
type:"POST",
success:function(data) {
try {
document.getElementById("the_output").innerHTML = data;
}
catch (e) {
document.getElementById("the_output").innerHTML = "<b>Error parsing data:</b><br />" + data;
}
},
error:function(xhr, status, error) {
let errorMessage = "<b>查询返回失败:</b><br />"
+ "Status: " + status + "<br />"
+ "Error: " + error + "<br />"
+ "XHR Response Text:<br />{" + xhr.responseText + "}";
document.getElementById("the_output").innerHTML = errorMessage;
}
});
</script>
</body>
</html>
和PythonTest.py:
#!/usr/bin/env python3
print("<br />If you can read this, then It Works<br />")
当我在浏览器中输入页面的URL时,返回的结果是:
查询返回失败
状态:错误
错误:内部服务器错误
XHR响应包含Web主机页面的HTML,以显示500错误.
我应该在Ajax呼叫中添加一些内容吗?
EDIT:当我直接将URL输入到浏览器时,它会返回与Ajax调用返回相同的500错误页面.它似乎不像Edge、Firefox和Chrome那样是特定于浏览器的. 此外,我确实判断了脚本中的行终止符是Unix风格的,而不是NOS风格的,而且我在上面运行PHP脚本没有任何问题-只是Python.