【发布时间】:2018-05-06 00:26:39
【问题描述】:
我正在使用 nodejs 服务器、express 框架和 fetch 库将请求发送到不同域中的另一台服务器。对于我的一个端点考虑(localhost:8080 / login),当用户单击登录按钮时,我正在呈现ejs文件,我正在向其他域中的api(https:otherserver.com/login)不同的服务器发送获取请求。我无法发送此请求。我收到此错误:
对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://localhost:8080' 不允许访问。响应的 HTTP 状态代码为 404。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。
我不确定如何处理这个问题。请提出一些可以解决此问题的想法或链接。
【问题讨论】:
-
你的js文件中有
app.use(cors());吗? -
@mast3rd3mon 是的,我用过。
-
那应该没有问题吧?这就是你启用 cors 的方式
-
您应该为 OPTIONS 方法(预检请求)添加 Access-Control-Allow-Origin '*'。对于 nodejs,您可以添加中间件 cors。
标签: node.js express cors fetch