Ajax成功函数与python:奇怪的行为

时间:2017-03-01 17:47:13

标签: python ajax post

我尝试在浏览器端使用数据时发现了一种奇怪的行为,这是由客户端的python脚本发送的。

ajax调用是:

$.ajax({
    async: true,
    type: "POST",
    url: "/path/cgi-bin/pyscript.py",
    data: JSON.stringify(my_array), 
    dataType: "html",
    success : function(data) {
        document.getElementById("ajaxAnchor").innerHTML = data + "Some random string to test display"
    }
});  

}

我想在python脚本中将data的结果发送回print(),但这仅适用于异常特定的情况。对于要发回的打印数据,必须首先存在print(),最后执行\n

  print("This line won't be sent to browser but is necessary \n")
  print("This text will be sent back")

这不仅仅是添加换行符,因为以下示例不起作用:

  print("\n This text will not be sent back")

必须有一条“浪费”的行才能成功发送以下内容:

  print("This line won't be sent to browser but is necessary")
  print("\n This text will be sent back")

我是使用Ajax的初学者,所以如果有人愿意解释为什么会发生这种情况,我想了解底层逻辑。谢谢!

1 个答案:

答案 0 :(得分:1)

您使用的是CGI-Protokoll。您必须先发送一个HTTP-Header,它由一个空行终止。最小的答案是:

print("200 OK\n")
print("Your Text.")