为什么我只在 Chrome 中从我的 Node ExpressJS 应用程序中收到 CORS 错误?

瑞安·费舍尔

我有一个运行良好的 Node 应用程序并设置了正确的 CORS 标头。昨天,我开始收到从前端到各种后端 API 的请求的 CORS 错误。基础架构托管为 Google Cloud Run 容器。

我很困惑...

  • CORS 错误是间歇性的,有些用户根本没有得到它们
  • 仅在 Chrome ( Version 90.0.4430.85 (Official Build) (x86_64))、Safari 和 Firefox 中出现的 CORS 错误按预期工作
  • 我试过:
    • cors手动替换npm 包/库并设置 CORS 标头(参见 1、2)
    • 部署过去工作的旧版本代码
    • 部署到不同的平台 (Heroku)

原始cors配置:

    const cors = require('cors')
    const express = require('express')
    
    // snip

    const shouldCompress = (req, res) => {
      if (req.headers['x-no-compression']) {
        return false;
      }
      return compression.filter(req, res);
    }

    try {

      // snip

      const app = express()
      app.use(compression({filter: shouldCompress,level:9, threshold: 0}))
      app.use(cors({ exposedHeaders: ['Content-Disposition'] }))
      app.options('*',cors())

      // ...
  1. 手动标题配置:
app.use(function (req, res, next) {

        // Website you wish to allow to connect
        res.setHeader('Access-Control-Allow-Origin', '*');
    
        // Request methods you wish to allow
        res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
    
        // Request headers you wish to allow
        res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
  1. 手动配置尝试:
app.use(cors({ exposedHeaders: ['Content-Disposition'] }))
      //app.use(cors({ exposedHeaders: ['Content-Disposition'] }))

      app.use(cors({
        origin: '*',
        credentials: true,
        exposedHeaders: ['Content-Disposition']
      }))

      app.options('*',cors())
贾里德

我不敢相信你会问这么幼稚的问题,你不做网络开发兄弟吗?你有没有想过检查你的 node.js 版本?你必须升级它,让我猜你正在使用一些 12.0 节点版本。只需将其升级到 15.14.0-alpine3.10 就可以了。psh

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

尽管我的ReactJS应用程序在Postman应用程序中成功完成了,但为什么我的HTTP应用程序却引发了CORS错误?

我在Chrome中不断收到错误:HTTP错误403.14-禁止使用网络应用程序Visual Studio 2012

为什么我收到错误“默认包中的 Spring Boot 应用程序”

为什么我在闪亮的应用程序中收到“找不到服务器”错误?

我在Rails应用中设置了CORS,但仍然收到错误

让我们加密SSL证书的ExpressJS Node应用程序中的握手失败

为什么我的 node.js 应用程序在重新加载/刷新时会收到“无法获取/页面”错误?

空白cors政策阻止我在expressjs中的请求

在 ExpressJS 中禁用 CORS

在应用程序中,我一直在 UNRESOLVED REFERENCE: ANDROID 中收到错误

使用expressjs4在Node.js中启用CORS

无法在我的 node express 应用程序中触发主错误处理程序

在我的Web应用程序中从Spring收到“找不到线程绑定的请求”错误

尽管我正在处理 next(),但在 Express 应用程序中收到“无法获取 /”错误

即使应用程序工作正常,我在 logcat 中也收到错误消息?

我的应用程序中的权限错误

将PassportJS集成到ExpressJS应用程序错误中

为什么我在简单的angularjs程序中收到此错误?

为什么我会收到 Cors 错误:...已被 CORS 政策阻止

已经在我的 express 中为 node.js 设置 cors 但仍然给出关于 cors 的相同错误

为什么有些用户在Flash应用程序中收到rsl错误?

Safari(而不是Chrome)中的CORS错误

应用程序错误 - 尽管我的应用程序在开发中运行良好,但在部署到 Heroku 后我收到一条错误消息

expressJS / Node应用运行错误

为什么我在 Chrome 中为我的视频显示此错误?

为什么代码在 selenium chrome 驱动程序中工作,如果我在我的代码上设置了中断但如果删除会收到错误?

为什么我在Spring Boot应用程序中遇到未找到错误的错误

为什么我收到“(admin.E003) 'raw_id_fields[N]' 的值必须是 ForeignKey 或 ManyToManyField。” Django 应用程序中的错误?

为什么我会在 Django 教程“编写第一个 Django 应用程序”的第 4 部分中收到 404 错误