Python socket 搭建的服务器如何返回 JSON 数据给到浏览器

发布于 2022-09-07 22:20:18 字数 742 浏览 23 评论 0

用 Python socket 搭建的后端服务器,浏览器前端用 AJAX 访问这个服务器下的 xx.py,该怎么返回 JSON 数据给前端,方便前端获取 JSON 数据?
请知道的大神帮忙解惑,谢谢!


下面是代码:

import socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('127.0.0.1', 8080))
server.listen(50)
while True:

data, addr = server.accept()
info = b'{"id":"test", "psw":"123"}'

buffer = data.recv(1024)
data.send("HTTP/1.1 200 OK\r\nContent-type: text/html\r\n\r\n"+info)
data.close()

问题已解决

在答友@Lin_R的提示下,自己尝试让 socket 以“http 报文响应头”+ JSON 格式内容返回给浏览器,能够正确拿到 JSON 数据。之前不能拿到是因为 AJAX 调用的 HTTP 主域名是本机域名(127.0.0.1),而服务器的域名地址是(192.168..),这就导致了“跨域问题”,浏览器不允许 AJAX 成功调用 JSON 的问题。PS:有兴趣可以查查“AJAX跨域”相关问题,希望能帮到跟我遇到同样问题的伙伴。
就此结疑。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

灯下孤影 2022-09-14 22:20:18

如果后端是 socket,想要返回信息给前端,那你不能直接返回 json 数据,因为你需要构造 http 报文的响应头,然后再把 json 数据放进去,与其这样,还不如后端直接起个简易的 httpserver,这样就真的只需要处理 json 了

究竟谁懂我的在乎 2022-09-14 22:20:18

import json

xxx.send(json.dumps({'id': 'test'}).encode())

指尖上的星空 2022-09-14 22:20:18

能放一下你的Socket完整代码吗

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文