gpt4 book ai didi

node.js - Express CORS 适用于除一个端点之外的其他端点

转载 作者:太空宇宙 更新时间:2023-11-04 03:18:21 25 4
gpt4 key购买 nike

我有一个简单的 Express 项目作为我的 API 端点,使用 cors 作为中间件。

cors 适用于除一个端点之外的任何其他端点。这是我的代码快照:

const express = require('express');
var cors = require('cors');
const app = express();

app.use(cors());

app.get('/shuttles',
tokenPassport.authenticate('bearer', { session: false }),
(req, res) => {
// ....
// implementation goes here...
// ....
})

app.get('/deposit',
tokenPassport.authenticate('bearer', { session: false }),
(req, res) => {
// ....
// implementation goes here...
// ....
})

/deposit 中的 CORS 可以正常工作,但不能与 /shuttles 一起使用。

注意:不要介意 tokenPassport 要求。这是为了授权。

编辑

这是 chrome devtool 中网络选项卡的快照。它仅发送 OPTIONS 请求,即响应 header 。响应中没有 Access-Control-Allow-Origin header 。

snapshot

最佳答案

您可以在 app.jsserver.js 文件中创建自己的中间件。

//CORS
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,Content-Type,Accept,Authorization');
res.setHeader('Access-Control-Allow-Credentials', true);
next();
});

如果您想使用cros模块

const corsOptions = {
"origin": "*",
"methods": "GET, HEAD, PUT, PATCH, POST, DELETE",
// other options
}

app.use(cors(corsOptions));

关于node.js - Express CORS 适用于除一个端点之外的其他端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53475102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com