# 四.middleware
- 原理大致与 nginx 相同,都是通过启动一个代理服务器,实现数据的转发,也可以通过设置 cookieDomainRewrite 参数修改响应头中 cookie 中域名,实现当前域的 cookie 写入,方便接口登录认证。
# 1.非 vue 框架的跨域(2 次跨域)
利用 node + express + http-proxy-middleware 搭建一个 proxy 服务器
刷新
全屏/自适应
- 2.启动 proxy-middleware
npm i express http-proxy-middleware -D
1
const express = require("express")
const app = express()
const proxyMiddleWare = require("http-proxy-middleware")
app.use(
proxyMiddleWare("/*", {
target: "http://localhost:3000",
changeOrigin: true,
})
)
app.listen(3000, () => {
console.log("监听3000端口")
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
- 3.后台服务
const http = require("http")
const querystring = require("querystring")
const app = http.createServer()
app.on("request", (req, res) => {
if (req.method == "GET") {
res.writeHead(200, { "Content-Type": "text/html" })
res.write("success get")
res.end()
}
if (req.method === "POST") {
let data = ""
console.log(req.headers)
req.on("data", (chunk) => {
data += chunk
})
req.on("end", () => {
data = querystring.parse(data)
res.write(querystring.stringify(data))
res.end("123")
})
}
})
app.listen(3000, () => {
console.log("已经连接上了3000")
})
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
# 2.vue 框架的跨域(1 次跨域)
利用 node+ webpack+webpack-dev-server 代理接口跨域。在开发环境下,由于 vue 渲染服务和接口代理服务都是 webpack-dev-server 同一个,所以页面与代理接口之间不再跨域,无需设置 headers 跨域信息。