一尘不染

起源 是Access-Control-Allow-Origin不允许的

node.js

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

localhost:8080 - GAE server从节点服务器加载页面时,我向发出了一个ajax请求。最简单,最安全的方法是什么(不想用disable-web- security选项启动chrome )。如果必须更改'Content-Type',是否应该在节点服务器上进行更改?怎么样?


阅读 248

收藏
2020-07-07

共1个答案

一尘不染

由于它们在不同的端口上运行,因此它们是不同的JavaScript origin。它们在同一台计算机/主机名上没关系。

您需要在服务器(localhost:8080)上启用CORS。查看此网站:http :
//enable-cors.org/

您需要做的就是向服务器添加一个HTTP标头:

Access-Control-Allow-Origin: http://localhost:3000

或者,为简单起见:

Access-Control-Allow-Origin: *

如果您的服务器尝试设置cookie,而您使用的是,请不要使用“ *” withCredentials = true

响应凭据请求时,服务器必须指定域,并且不能使用通配符。

您可以withCredentials在此处了解更多信息

2020-07-07