使用node反向代理解决跨域问题
# 安装插件
npm install http-proxy-middleware --save
1
# 使用方法
在根目录里面新建 proxy.js
,写入如下代码
const express = require('express');
const proxy = require("http-proxy-middleware");
const app = express();
const path = require('path');
app.use('/api/**',
proxy.createProxyMiddleware({
// 代理目标地址
target: "http://zhenglinglu.cn",
changeOrigin: true,
pathRewrite: {
// 地址重写
"^/api": ""
}
})
);
app.use(express.static(path.join(__dirname, 'www')));
app.listen(82, () => {
console.log("项目启动与:http://localhost:82");
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
上面代码指的是监听82端口,然后反向代理 http://zhenglinglu.cn
,用 node proxy.js
启动然后访问 http://localhost:82/api/get
,可以发现是可以访问到了,证明反向代理成功。
# 其他
如果在 spa
项目中如何使用反向代理的,比如 vue
或者 react
中使用代理等。
const express = require('express');
const proxy = require("http-proxy-middleware");
const app = express();
app.use('/api/**',
proxy.createProxyMiddleware({
// 代理目标地址
target: "http://localhost:8080",
changeOrigin: true,
pathRewrite: {
// 地址重写
"/api": "/"
}
}));
app.use("/",
proxy({
// 这里是vue/react启动后需要访问网页的地址
// **修改了这里
target: "http://localhost:80",
changeOrigin: true,
}))
// app.get("/", (req, res) => {
// res.sendfile("./client.html");
// })
app.listen(8080, () => {
console.log("项目启动与:http://localhost:8080");
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
上次更新: 2024/01/30, 00:35:17
- 01
- linux 在没有 sudo 权限下安装 Ollama 框架12-23
- 02
- Express 与 vue3 使用 sse 实现消息推送(长连接)12-20