[英]How to return ajax Response with python HTTPServer?
我在 python 中创建了一个示例 http 服务器,并尝试将其与 ajax 发布方法连接。 当客户端开始发帖时,我得到了connection ajax from:...
登录我的服务器,然后是send_response(200)
,但在我的客户端部分,总是出现错误和响应 ['status'] = 0,请帮助我,很感谢!
HTTPServer 部分: (python)
class ajax_server(BaseHTTPRequestHandler):
def do_POST(self):
print('connection ajax from:', self.address_string())
data={"data":"test"}
json_string = json.dumps(data)
self.send_response(200)
self.send_header(
'Content-type',
'application/json'
)
self.end_headers()
self.wfile.write(json_string.encode(encoding='utf-8'))
server = ThreadedHTTPServer("my server ip", ajax_server)
server.serve_forever()
客户端部分: (javascript)
$(document).ready(function () {
update_ajax();
function update_ajax() {
$.ajax({
url: "my server url",
type: 'POST',
success: function (response) {
alert(response["status"]);
},
error: function (response) {
alert(response['status']);
}
})
//setTimeout(update_ajax, 1000);
}
});
更新:
- 此服务器可以通过 json 数据到 chrome 浏览器
- 此客户端适用于 django JsonResponse return (response['status'] = 200)
我必须忽略一些错误来创建 ajax 响应,就像 django 一样。
最后,我发现在 header 中添加Access-Control
就可以了~
def do_POST(self):
print('connection ajax from:', self.address_string())
data={"data":"test","status":200}
json_string = json.dumps(data)
self.send_response(200)
self.send_header("Content-type", "application/json")
self.send_header("Access-Control-Allow-Origin", "*")
self.send_header("Access-Control-Expose-Headers", "Access-Control-Allow-Origin")
self.send_header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept")
self.end_headers()
self.wfile.write(json_string.encode(encoding='utf-8'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.