繁体   English   中英

麻烦让SimpleHTTPRequestHandler响应AJAX

[英]Having Trouble Getting SimpleHTTPRequestHandler to respond to AJAX

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

虽然一切似乎都可以接收来自客户端的请求,但是当我尝试self.wfile.write(“foo”)时,我无法将任何内容发送回客户端,我在客户端得到了回复; 但是,XmlObject的响应文本是完全空白的!?!

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

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

确保您的响应具有带内容类型的send_header() 没有这个,我看到AJAX请求混淆了。 您也可以尝试将POST切换到GET进行调试,并确保浏览器可以看到内容。

下面是一个简单的HTTP示例,用于在将查询或浏览器指向127.0.0.1/test时返回XML:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM