javascript - 无法让 SimpleHTTPRequestHandler 响应 AJAX

标签 javascript jquery python ajax simplehttpserver

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

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

如果有人能阐明这一点,那就太好了!

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

最佳答案

确保您的响应有一个带有内容类型的 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()

关于javascript - 无法让 SimpleHTTPRequestHandler 响应 AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11748372/

相关文章:

python - aws CLI 比使用 boto3 更快吗?

python - 网页上的 Bibtex?

javascript - 统计mysql中的重复数据

javascript - 在自定义事件中访问 javascript 本地变量

javascript - 预加载大面积的google map

javascript - 获取多个对象中的属性值

python - 在 python 中为应用程序引擎生成 json

javascript - 如何将 props 传递给 vue.js 中的另一个组件

javascript - 使用 javascript 显示列表项

javascript - 仅在 NodeJS/浏览器的开发模式下显示日志信息