如何解决cors起源异常



我们将nodejs应用程序部署到aws,但它在访问任何api、时都会出现此错误

Access to XMLHttpRequest at 'https://vkluy41ib9.execute-api.ap-south-1.amazonaws.com/dev/api/auth/login' from origin 'https://cmc-app.netlify.app' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

现在的问题是,如果我们的节点应用程序托管在本地主机上,它工作正常,但部署在实时服务器上,它会抛出错误

这是我们的代码:

app.options(cors());
app.use(function (req, res, next) {
//Enabling CORS
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
res.header(
"Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content-Type, Accept, x-client-key, x-client-token, x-client-secret, Authorization"
);
next();
})

如果要使用cors(),则需要编写:

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

否则将无法正确注册。使用此方法,从cors()返回的处理程序将用于所有OPTIONS请求。

执行app.use的第二部分是不必要的,因为它与以前的方法几乎相同。

为了获得你想要的第二部分的结果,你可以写:

app.options("*", cors({
methods: ["GET", "HEAD", "OPTIONS", "POST", "PUT"],
allowedHeaders: ["origin", "X-Requested-With", "Content-Type", "Accept", "x-client-key", "x-client-token", "x-client-secret", "Authorization"]
}));

此处列出了cors的所有配置选项:https://www.npmjs.com/package/cors#configuration-选项

最新更新