1. 使用 cors 中间件
cors 是一个 Node.js 的中间件,用于处理跨域请求。首先,需要通过 npm 安装 cors 包:
bash
npm install cors
在 nodeJS 使用它
javascript
const express = require("express");
const cors = require("cors");
const app = express();
// 全局使用 cors 中间件,允许所有来源的跨域请求
app.use(cors());
app.listen(3000, () => {
console.log("服务器运行在 3000 端口");
});
如果只想允许特定来源的跨域请求,可以像这样配置:
javascript
const corsOptions = {
origin: "http://example.com", // 只允许来自 http://example.com 的请求
methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
allowedHeaders: "Content-Type,Authorization",
};
app.use(cors(corsOptions));
2. 设置响应头
也可以手动设置响应头来解决跨域问题。
javascript
const express = require("express");
const app = express();
app.use((req, res, next) => {
res.header("Access-Control-Allow-Origin", "*"); // 允许任何来源的请求
res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); // 允许的请求方法
res.header("Access-Control-Allow-Headers", "Content-Type, Authorization"); // 允许的请求头
if (req.method === "OPTIONS") {
res.sendStatus(200); // 对预检请求返回 200 状态码
} else {
next();
}
});
app.listen(3000, () => {
console.log("服务器运行在 3000 端口");
});