gpt4 book ai didi

python - 如何使用 python HTTPServer 返回 ajax 响应?

转载 作者:行者123 更新时间:2023-12-05 06:55:14 25 4
gpt4 key购买 nike

我在 python 中创建了一个示例 http 服务器,并尝试使用 ajax post 方法连接它。当客户端开始发帖时,我得到了 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);
}
});

update:

  1. this server can past json data to chrome browser
  2. this client works well with django JsonResponse return (response['status'] = 200)

there must some mistake I ignore to create an ajax Response like django does.

最佳答案

最后,我发现在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'))

关于python - 如何使用 python HTTPServer 返回 ajax 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65420263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com