【问题标题】:Express configured to use CORS does not accept CORSExpress 配置为使用 CORS 不接受 CORS
【发布时间】:2021-05-03 16:48:04
【问题描述】:

我在 Express 上遇到了一些奇怪的事情。我有一个接收日志数据并将其推送到 postgres 数据库的端点,但我在请求时收到此错误:

Access to XMLHttpRequest at 'https://myserver.com/log' from origin 'https://myorigin.io' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

这没有任何意义,因为我已将 express 应用程序配置为接受 CORS,并且看起来接受了选项请求?这是相关的服务器端代码

app.use(function (req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header(
    "Access-Control-Allow-Headers",
    "Origin, X-Requested-With, Content-Type, Accept"
  );
  next();
});

app.use(express.json());

这是请求

$.ajax({
    type: "POST",
    url: "https://myserver.com/log",
    data: JSON.stringify({ "username": "test", "json": {a: 1}}),
    dataType: 'json',
    contentType: 'application/json'
})

我试过了

app.use(cors())

app.use(cors());
app.options("*", cors());

无济于事。

我在这里遗漏了什么明显的东西吗?

【问题讨论】:

    标签: javascript node.js rest express cors


    【解决方案1】:

    您是否安装了cors npm 模块并导入到您的 server.js 或 index.js 文件中。理想情况下,您应该通过npm install -save cors 安装

    然后如下使用

    var express = require('express');
    var cors = require('cors');  // from cors npm module
    var app = express();
    app.use(cors());
    

    【讨论】:

    • 是的,我也尝试过使用该方法,但它产生了同样的错误。
    猜你喜欢
    • 2018-11-05
    • 2021-12-28
    • 2018-05-01
    • 2017-06-21
    • 2018-03-05
    • 2013-10-19
    • 2020-01-21
    • 2021-06-23
    • 2020-10-25
    相关资源
    最近更新 更多