在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java  Python  HTML/ Python socket 搭建的服務(wù)器如何返回 JSON 數(shù)據(jù)給到瀏覽器

Python socket 搭建的服務(wù)器如何返回 JSON 數(shù)據(jù)給到瀏覽器

用 Python socket 搭建的后端服務(wù)器,瀏覽器前端用 AJAX 訪問(wèn)這個(gè)服務(wù)器下的 xx.py,該怎么返回 JSON 數(shù)據(jù)給前端,方便前端獲取 JSON 數(shù)據(jù)?
請(qǐng)知道的大神幫忙解惑,謝謝!


下面是代碼:

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()

問(wèn)題已解決

在答友@Lin_R的提示下,自己嘗試讓 socket 以“http 報(bào)文響應(yīng)頭”+ JSON 格式內(nèi)容返回給瀏覽器,能夠正確拿到 JSON 數(shù)據(jù)。之前不能拿到是因?yàn)?AJAX 調(diào)用的 HTTP 主域名是本機(jī)域名(127.0.0.1),而服務(wù)器的域名地址是(192.168..),這就導(dǎo)致了“跨域問(wèn)題”,瀏覽器不允許 AJAX 成功調(diào)用 JSON 的問(wèn)題。PS:有興趣可以查查“AJAX跨域”相關(guān)問(wèn)題,希望能幫到跟我遇到同樣問(wèn)題的伙伴。
就此結(jié)疑。

回答
編輯回答
眼雜

import json

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

2017年2月22日 19:37
編輯回答
選擇

如果后端是 socket,想要返回信息給前端,那你不能直接返回 json 數(shù)據(jù),因?yàn)槟阈枰獦?gòu)造 http 報(bào)文的響應(yīng)頭,然后再把 json 數(shù)據(jù)放進(jìn)去,與其這樣,還不如后端直接起個(gè)簡(jiǎn)易的 httpserver,這樣就真的只需要處理 json 了

2018年2月21日 20:38
編輯回答
撿肥皂

能放一下你的Socket完整代碼嗎

2017年12月21日 21:00