0

我需要一个只能格式化正确 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

解决了。原因在于跨域请求。

4

1 回答 1

1

尝试以下操作:

  1. 尽管 HTTP 1.0 和 1.1 规范说标头名称和标头值之间的空格是可选的,但规范确实说“首选单个 SP[ace]”。

  2. 确保您没有任何跨域问题,因此请确保您的 HTML 页面完全从域、方案和端口作为您的 JSON 响应提供(除非您已正确配置 CORS.

  3. 使用 Chrome 开发工具 / Firebug / Fiddler 查看他们发出的请求并检查 Javascript 控制台。

  4. 使用 Wireshark 可以准确查看电线上的内容。

于 2012-11-03T10:29:33.407 回答