【发布时间】:2018-08-01 03:55:23
【问题描述】:
express cors 有一个奇怪的问题。我的 Cors 配置在 localhost 上运行良好,但不适用于生产。我总是收到这个错误。
加载失败 https://my-movie-db-backend-roberto.herokuapp.com/auth/login:回复 预检请求未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。原点“https://my-movie-db-roberto.herokuapp.com”是 因此不允许访问。响应具有 HTTP 状态代码 503。 如果不透明的响应满足您的需求,请将请求的模式设置为 'no-cors' 来获取禁用 CORS 的资源。
这是我的 cors 配置:
import * as cors from "cors";
const corsConfig: cors.CorsOptions = {
origin: ["https://my-movie-db-roberto.herokuapp.com", "http://localhost:3000"],
credentials: true,
methods: "GET,HEAD,OPTIONS,PUT,PATCH,POST,DELETE"
};
app.use(cors(corsConfig));
// add your routes
<MY-Routes>
// enabling pre-flight
app.options("*", cors(corsConfig));
我已经有一段时间了,我决定最好寻求帮助,谢谢;-)
【问题讨论】:
-
将
"GET,HEAD,OPTIONS,PUT,PATCH,POST,DELETE"更改为数组["GET,HEAD,OPTIONS,PUT,PATCH,POST,DELETE"] -
这不是问题。该文档允许将方法设置为字符串。但是我尝试了数组方法,错误仍然存在
-
“响应的 HTTP 状态代码为 503” 解决了这个问题。它甚至可能根本与您的快递服务器无关。
标签: javascript node.js express http-status-code-503