我正在尝试使用 python 脚本回答 ajax 请求。ajax 请求发送一个 json 对象,如下所示:
$.ajax({
url : "cgi-bin/mycgi.py",
type : "POST",
data : JSON.stringify(MyJSONObject),
success : function() {...do something},
error : function(xhr,errmsg,err) {
alert(xhr.status);
}
}
我的 Python 脚本 mycgi.py 有以下几行:
import sys
import simplejson as json
...
myjson = json.loads(sys.stdin.read())
#do something with the object
mystatus = "200 OK"
sys.stdout.write("Status: %s\n" % mystatus)
sys.stdout.write("Content-Type: application/json")
sys.stdout.write("\n\n")
sys.stdout.write(json.dumps(myjson))
基本上一切正常。我的浏览器收到响应,识别 - 如果状态设置为“200 OK” - 请求成功并使用返回的对象运行成功部分中的命令。
但我有两个问题:
- 如何让我的脚本返回带有错误消息的错误?我可以返回“404”而不是“202 OK”,并且我的浏览器意识到存在错误。但我不知道如何返回错误消息。我是否必须将此消息放在回复的标题中?
- 我想知道,我的客户端和服务器之间的通信方式是否“太简单”并且可能太冒险了。当我在这里阅读其他类似问题的问题时,我看到人们使用诸如“请求”之类的 python 模块或从 BaseHTTPRequestHandler 派生一个类。我想让我的 python 脚本尽可能简单。出于某种原因,是否有必要另辟蹊径?
非常感谢!