刚开始学习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请求”已打印,因此服务器必须已收到请求。但是,我在控制台上收到此错误:
有什么建议吗?谢谢!
答案 0 :(得分:0)
当您的JS或HTML页面是从其他域提供服务,并且您试图向其他域发出AJAX请求时,会出现错误消息。这称为CORS。出于安全原因,除非服务器允许,否则Web浏览器会限制跨域AJAX请求。
要发出跨源AJAX请求,您需要在处理程序的响应中设置一个名为Access-Control-Allow-Origin
的标头。
您可以在处理程序的prepare
方法中执行此操作:
std::addressof