tornado服务器未通过self.write返回响应

1 投票
1 回答
2339 浏览
提问于 2025-04-16 02:02

我有一个简单的 Tornado 服务器,运行方式是这样的:

import json
import suds
from suds.client import Client
import tornado.httpserver
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):

    def get(self):
        url = "http://xx.xxx.xx.xxx/Service.asmx?WSDL"
        client = Client(url)
        resultCount = client.service.MyMethod()
        self.write(json.dumps({'result_count':resultCount})) 

application = tornado.web.Application([
    (r"/", MainHandler),
])

if __name__ == "__main__":
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(6969)
    tornado.ioloop.IOLoop.instance().start()

现在,我有一个 jQuery 函数,它像这样调用这个 Tornado 代码:

 $.get("http://localhost:6969",
            function(data){
                alert(data);
                $('#article-counter').empty().append(data).show();
            });

我真搞不懂为什么返回的数据是空的。即使用 Firebug 也显示响应是空的(不过 HTTP 状态是 200)。有人知道这是为什么吗??

1 个回答

4

我终于搞明白问题出在哪里了:我的应用没有遵循“同源策略”。所以当我发送ajax请求时,引用来源的端口和我的tornado服务器不一样。结果,服务器自然就没有返回响应!

撰写回答