我有一个网站,它有对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.

推荐答案

我询问了网络服务器上的研究人员,他们说我需要包括:

print("Content-type: text/html\n")

到我的Python脚本的开始(调用之后).我做到了,而且效果很好.

Python相关问答推荐

将列中的滚动值集转换为单元格中的单个值

螺旋桨图上意外颠倒的次y轴

PyTorch卷积自动编码器,输出维度与输入不同

使用Python C API重新启动Python解释器

Numpy索引argsorted使用integer数组,同时保留排序顺序

了解shuffle在NP.random.Generator.choice()中的作用

Twilio:CallInstance对象没有来自_的属性'

有条件地采样我的大型DF的最有效方法

如何在Python中使用时区夏令时获取任何给定本地时间的纪元值?

三个给定的坐标可以是矩形的点吗

重新匹配{ }中包含的文本,其中文本可能包含{{var}

删除最后一个pip安装的包

如何避免Chained when/then分配中的Mypy不兼容类型警告?

按顺序合并2个词典列表

如何在类和classy-fastapi -fastapi- followup中使用FastAPI创建路由

avxspan与pandas period_range

对象的`__call__`方法的setattr在Python中不起作用'

通过ManyToMany字段与Through在Django Admin中过滤

如何使regex代码只适用于空的目标单元格

基于行条件计算(pandas)