我需要一个只能格式化正确HTTP响应的库(不需要创建Web服务器,因为我已经有了这个)。
我必须将http响应和内容类型的主体传递给此库。
如果我尝试发送AJAX,以下函数无法正常工作 - jQuery没有找到任何响应。但是,如果我在浏览器的URL字符串中键入相应的URL,则会显示一个页面。
def response( data ):
return "HTTP/1.0 200 OK\r\nContent-Type:application/json\r\nConnection:close\r\n\r\n{0}\r\n".format( data )
详细信息即可。数据变量是json的字符串。我也使用SocketServer类,在child的handle()函数中调用self.request.sendall(result_response)。
# the 'request handler' class
class StateRequestHandler( SocketServer.BaseRequestHandler ):
def handle( self ):
...
self.request.sendall( response( some_json ) )
# the configured server class
class StateServer( SocketServer.ThreadingMixIn, SocketServer.TCPServer ):
pass
解决即可。原因在于跨域请求。
答案 0 :(得分:1)
尝试以下方法:
虽然HTTP 1.0和1.1规范说标题名称和标题值之间的空格是可选的,但规范确实说“首选单个SP [ace]”。
确保您没有任何跨域问题,因此请确保您的HTML页面完全由域,方案和端口作为JSON响应提供(除非您已正确配置CORS。
使用Chrome开发工具/ Firebug / Fiddler查看他们正在发出的请求并查看Javascript控制台。
使用Wireshark查看电汇上的确切内容。