我制作了简单的hello world NODEJS Server。 我有一个运行在chrome中的enyo web服务,试图访问http://localhost:3000
的NODEJS服务器当调用onSuccess方法时,没有加载任何数据,并且消耗显示以下错误
XMLHttpRequest cannot load http://localhost:3000/. Origin http://localhost:81 is not allowed by Access-Control-Allow-Origin.
我在浏览器中测试了nodejs服务器,它工作正常。
我尝试在Chrome中设置--disable-web-security
,标记,但它无效。
有人知道如何解决这个问题吗?如果NOD.js在另一台服务器上运行,它会起作用吗?这种安全性令人困惑。 泰德
答案 0 :(得分:6)
出于安全原因,浏览器会限制脚本通过XMLHttpRequest发出的请求。
您的请求只会在以下两种情况下成功:
尝试将Accesss-Control-Allow-Origin标头添加到节点代码中生成响应的任何内容中,在某些代码中添加如下所示的标头:
response.writeHead(200, {
'Content-Type': 'text/plain',
'Access-Control-Allow-Origin' : 'http://localhost:81'
//allow anything by replacing the above with
//'Access-Control-Allow-Origin' : '*'
});