【发布时间】:2016-07-06 16:49:15
【问题描述】:
遇到控制台错误后(使用fetch api),
控制台错误:
Fetch API 无法加载 https://... 对预检请求的响应 没有通过访问控制检查:没有“Access-Control-Allow-Origin” 请求的资源上存在标头。来源 'https://...' 是 因此不允许访问。响应具有 HTTP 状态代码 404。 如果不透明的响应满足您的需求,请将请求的模式设置为 'no-cors' 来获取禁用 CORS 的资源。
我尝试通过安装npm cors package 来解决此问题。
npm install cors --save
然后添加到 server.js 中
const cors = require('cors');
app.use(cors());
Cors 包设置说明: https://www.npmjs.com/package/cors
但我仍然收到相同的预检请求错误。任何人都可以建议是否需要对 cors 包进行额外设置,或者是否可能需要做其他事情?
【问题讨论】:
-
npmjs.com/package/cors#enabling-cors-pre-flight 看一下,因为您的浏览器将其视为“复杂”请求
-
根据我也尝试过的文档,
app.options('/quotes', cors());和app.put('/quotes', cors(), (req, res)...(将cors()直接放入请求中),但它也不起作用。
标签: javascript npm cors