尝试处理CORS设置一个简单的Node / Express服务器,如下所示:
const express = require('express');
var cors = require('cors');
const app = express();
const port = process.env.PORT || 3000;
app.use(cors());
app.use(express.static('public'));
app.listen(port, () => {
console.log('Server active on port: ', port);
});
使用此cors lib:https://www.npmjs.com/package/cors
剩下的是一个简单的应用程序,使用JQuery ajax来获取一些数据...在启用了CORS chrome扩展程序的情况下工作,但无法弄清楚如何设置简单的服务器,因此我不必使用chrome扩展程序...
答案 0 :(得分:1)
您可以尝试设置要传递给cors
软件包的选项,像这样
const corsOptions = {
origin: process.env.CORS_ALLOW_ORIGIN || '*',
methods: ['GET', 'PUT', 'POST', 'DELETE', 'OPTIONS'],
allowedHeaders: ['Content-Type', 'Authorization']
};
app.use(cors(corsOptions));
希望这会有所帮助。
答案 1 :(得分:-1)
您可以使用这样的cors中间件
const corsMiddleware = (req: Request, res: Response, next: NextFunction) => {
logger.debug(req.method + " at " + req.url);
res.setHeader("Access-Control-Allow-Origin", "*"); // you can optionally replace * with your server address
res.setHeader("Access-Control-Allow-Credentials", "true");
res.setHeader(
"Access-Control-Allow-Methods",
"POST, GET, PUT, DELETE, OPTIONS"
);
res.setHeader(
"Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content-Type, Accept, Authorization"
);
next();
};
要将此中间件用于各种请求,请使用
app.all("*", corsMiddleware);
这会将这些标头添加到所有请求中。