gpt4 book ai didi

javascript - 在 Node+Express 中,如何为各个路由设置 CORS?

转载 作者:行者123 更新时间:2023-11-28 05:38:08 28 4
gpt4 key购买 nike

我正在使用express-cors npm 包,但任何方式都可以:

我在公共(public)路线上尝试过此操作:

// @ /routes/index.js
var cors = require('express-cors');
var express = require('express');
var router = express.Router();

// Set cross-origin rules
router.use(cors({
allowedOrigins: [
'*'
]
}));

// GET home page
router.get('/', function(req, res, next) {
res.render('index', { title: 'tol-node-public' });
});

module.exports = router;

我还尝试了私有(private)路由以允许从我的网站访问:

// Set cross-origin rules
router.use(cors({
allowedOrigins: [
'https://*.mysite.*'
]
}));

但是在我的 Ajax 调用中:

$.ajax({
url: 'https://api.mysite.com/',
dataType: 'html',
type: 'GET',
success: function (res) {
console.log( "NODE SERVER STATUS: " + JSON.stringify(res) );
},
error: function (xhr, status, errThrown) {
if (DEBUG) console.log( "**ERR @ CheckNodeStatus: " + JSON.stringify(res) );
}
});

我收到无 CORS 错误,因此访问被拒绝。如何修复我的 CORS?我还是 Node 的新手。

最佳答案

我之前没有使用过npm express-cors,但是我使用过npm cors所以我只能讨论如何使用它。

设置:

npm i -S cors

<小时/>

index.js:

// @ /routes/index.js
var cors = require('cors');
var app = require('express')();

// Allow all
app.use(cors());

// GET home page
app.get('/', function(req, res, next) {
res.render('index', { title: 'tol-node-public' });
});

module.exports = router;
<小时/>

或者在特定路由(在本例中为根路由)上为您的特定 api 设置:

var corsOptions = {
origin: 'https://api.mysite.com/',
optionsSuccessStatus: 200
};

app.get('/', cors(corsOptions), function(req, res, next){
res.render('index', { title: 'tol-node-public' });
});
<小时/>

使用此包还有许多其他选项。

Documentation for npm cors here.

关于javascript - 在 Node+Express 中,如何为各个路由设置 CORS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39180570/

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