【问题标题】:CORS preflight request error not solved by installing npm cors package安装 npm cors 包未解决 CORS 预检请求错误
【发布时间】: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


【解决方案1】:

可能服务器没有添加“Access-Control-Allow-Origin”或者标头值的域错误。尝试发送带有值 * 的“Access-Control-Allow-Origin”标头,看看它是否有效。

你可以在这里看到更多https://dariuscoder.com/2021/09/16/how-to-debug-cors/

既然你说它是 404 代码,所以你使用的应用程序/框架可能没有添加标头,以防它没有找到一些资源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-10
    • 2019-12-13
    • 2020-10-26
    • 1970-01-01
    • 2019-04-11
    • 2017-05-06
    • 2020-04-09
    • 2013-09-13
    相关资源
    最近更新 更多