遇到了麻烦SimpleHTTPRequestHandler对AJAX响应(Having Troubl

2019-07-30 17:51发布

我最近尝试实施SimpleHTTPRequestHandler根据接受AJAX请求此 。

尽管一切都似乎只要接收到来自客户端的请求的工作,我不能发送任何回客户端,当我尝试self.wfile.write(“富”),我回来在客户端的响应; 然而,从XmlObject中的响应文本完全是一片空白!?!

如果任何人都可以对这个有何启示,那将是伟大的!

编辑:我想我的Ajax调用结构正确,因为我是从Python中得到反应(我已经在调试模式下检查); 但是,我没有得到任何消息发回responseText的时候,我得到一个对象返回。

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


文章来源: Having Trouble Getting SimpleHTTPRequestHandler to respond to AJAX