如何响应龙卷风中的GET请求?

时间:2019-01-26 11:57:07

标签: javascript jquery python-3.x tornado

刚开始学习HTTP,试图发出一个简单的客户端到服务器请求以在龙卷风中工作。这是通过单击按钮触发的我的javascript函数:

function funcOnClick(){
    $.ajax({
        url: "http://localhost:8889/madTest",
        type: "GET",
        success: function(result){alert('success')},
        error: function(error){console.log(error)}
    })
}

这是我的服务器:

import tornado.ioloop
import tornado.web
import json


class MainHandler(tornado.web.RequestHandler):
    def get(self):
        print('got the GET request')
        self.write('abc')


def make_app():
    return tornado.web.Application([
        (r"/madTest", MainHandler),
    ])


if __name__ == "__main__":
    app = make_app()
    app.listen(8889)
    print('server started, listening to 8889 ...')
    tornado.ioloop.IOLoop.current().start()

单击按钮后,我看到“获取GET请求”已打印,因此服务器必须已收到请求。但是,我在控制台上收到此错误:

enter image description here

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:0)

当您的JS或HTML页面是从其他域提供服务,并且您试图向其他域发出AJAX请求时,会出现错误消息。这称为CORS。出于安全原因,除非服务器允许,否则Web浏览器会限制跨域AJAX请求。

要发出跨源AJAX请求,您需要在处理程序的响应中设置一个名为Access-Control-Allow-Origin的标头。

您可以在处理程序的prepare方法中执行此操作:

std::addressof