【问题标题】:Having Trouble Getting SimpleHTTPRequestHandler to respond to AJAX无法让 SimpleHTTPRequestHandler 响应 AJAX
【发布时间】:2012-08-02 10:06:20
【问题描述】:

我最近尝试实现 SimpleHTTPRequestHandler 以根据this 接受 AJAX 请求。

尽管从客户端接收请求看来一切正常,但我无法将任何内容发送回客户端,当我尝试 self.wfile.write("foo") 时,我在客户端收到响应;但是,来自 XmlObject 的响应文本是完全空白的!?!

如果有人能对此有所了解,那就太好了!

编辑:我认为我的 AJAX 调用结构正确,因为我收到了来自 Python 的响应(我已在调试模式下检查过);但是,当我返回一个对象时,我没有收到任何消息返回 responseText。

【问题讨论】:

    标签: javascript jquery python ajax simplehttpserver


    【解决方案1】:

    确保您的回复有一个带有内容类型的 send_header()。我已经看到 AJAX 请求在没有这个的情况下会感到困惑。您还可以尝试将 POST 切换为 GET 进行调试,并确保浏览器可以看到内容。

    如果您将查询或浏览器指向 127.0.0.1/test,以下是返回 XML 的简单 HTTP 示例:

    import SimpleHTTPServer, SocketServer
    import urlparse
    
    PORT = 80
    
    class MyHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
       def do_GET(self):
    
           # Parse query data & params to find out what was passed
           parsedParams = urlparse.urlparse(self.path)
           queryParsed = urlparse.parse_qs(parsedParams.query)
    
           # request is either for a file to be served up or our test
           if parsedParams.path == "/test":
              self.processMyRequest(queryParsed)
           else:
              # Default to serve up a local file 
              SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self);
    
       def processMyRequest(self, query):
    
           self.send_response(200)
           self.send_header('Content-Type', 'application/xml')
           self.end_headers()
    
           self.wfile.write("<?xml version='1.0'?>");
           self.wfile.write("<sample>Some XML</sample>");
           self.wfile.close();
    
    Handler = MyHandler
    
    httpd = SocketServer.TCPServer(("", PORT), Handler)
    
    print "serving at port", PORT
    httpd.serve_forever()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多