CORS 错误:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态

Posted

技术标签:

【中文标题】CORS 错误:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态【英文标题】:CORS Error : Response to preflight request doesn't pass access control check: It does not have HTTP ok status 【发布时间】:2021-03-17 01:41:55 【问题描述】:

我不知道是什么导致了这个错误。我设置了所有正确的标题和所有正确的方法。这是我的 Node Js 服务器:

完全错误:登录:1 从源“http://localhost:4200”访问 XMLHttpRequest 在“http://localhost:3000/”已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态。 zone-evergreen.js:2845 POST http://localhost:3000/net::ERR_FAILED

const path = require("path");
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded( extended: false ));
app.use((req, res, next) => 
  res.setHeader("Access-Control-Allow-Origin", "*");
  res.setHeader(
    "Access-Control-Allow-Headers",
    "Origin, X-Requested-With, Content-Type, Accept"
  );
  res.setHeader(
    "Access-Control-Allow-Methods",
    "GET,PUT, POST, PATCH, DELETE, OPTIONS"
  );
  next();
);

我从 Angular 应用程序从 http://localhost:4200 发送 POST 请求并将其与 MongoDB 服务器连接。

如果有人可以帮助我,那就太好了。

【问题讨论】:

【参考方案1】:

有几种方法可以解决/解决此问题。

    关闭 CORS。例如:https://***.com/questions/3102819/disable-same-origin-policy-in-chrome 为您的浏览器使用插件:https://chrome.google.com/webstore/detail/allow-cors-access-control/lhobafahddgcelffkeicbaginigeejlf?hl=en 使用 nginx 等代理。 http://nginx.org/en/docs/beginners_guide.html 为您的服务器完成必要的设置。这更是一个 您在 EC2 实例上加载的 Web 服务器的因素 (假设这就是您所说的“亚马逊网络服务”)。为您 具体服务器可以参考enable CORS website.

【讨论】:

以上是关于CORS 错误:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态的主要内容,如果未能解决你的问题,请参考以下文章

Cloud Functions Cors 错误“对预检请求的响应未通过访问控制检查”

cors 策略错误:对预检请求的响应未通过访问控制检查:没有'Access-Control-Allow-Origin

CORS 错误:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态

角 POST 请求被 CORS 策略阻止:对预检请求的响应未通过访问控制检查

OAuth 中的 CORS:对预检请求的响应未通过访问控制检查

在 node/express 中启用了 CORS,但得到“对预检请求的响应未通过访问控制检查”