XMLHttpRequest cannot load http://localhost:8080/api/test. Origin http://localhost:3000 is not allowed by Access-Control-Allow-Origin.
我阅读了有关跨域 ajax 请求的信息,并了解了潜在的安全问题。在我的例子中,有 2 台服务器在本地运行,并且喜欢在测试期间启用跨域请求。
localhost:8080 - Google Appengine dev server
localhost:3000 - Node.js server
当我的页面从 Node 服务器加载时,我正在向 localhost:8080 - GAE 服务器
发出 ajax 请求。什么是最简单、最安全的(不想使用 disable-web-security
选项启动 chrome)。如果我必须更改 'Content-Type'
,我应该在 Node 服务器上进行吗?怎么样?
最佳答案
由于它们运行在不同的端口上,它们是不同的 JavaScript origin
。它们在同一台机器/主机名上并不重要。
您需要在服务器 (localhost:8080) 上启用 CORS。看看这个网站:http://enable-cors.org/
您需要做的就是向服务器添加一个 HTTP header :
Access-Control-Allow-Origin: http://localhost:3000
或者,为简单起见:
Access-Control-Allow-Origin: *
如果您的服务器尝试设置 cookie 并且您使用 withCredentials = true
when responding to a credentialed request, server must specify a domain, and cannot use wild carding.
关于javascript - Access-Control-Allow-Origin 不允许 Origin <origin>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18642828/