您的位置:首页 > 理论基础 > 计算机网络

HTTP请求代理-express,解决跨域问题

2020-06-07 05:31 495 查看

请求代理的方式有很多种,这里说的是使用Node.js中的express生成代理服务
↓ 直接上代码

  • 直接使用express
  1. 创建目录,我这里就起名为 – > proxy-app

生成package.json文件

npm init -y

依赖就这么多 我这里就用yarn了

yarn add express
yarn add axios
yarn add cors
  1. 创建文件,我这里起名为 – > app.js
const express = require("express")
const axios = require("axios").default
const cors = require("cors")
const app = express() // 变量赋值
// 允许跨域
app.use(cors())
// 接受JSON格式数据
app.use(express.json())
// 接受url编码
app.use(express.urlencoded())

// 接受一个post请求
app.post("/api/v1/proxy",async (req,res)=>{
const {url} = req.body
const result = await axios.get(url)
res.json(result.data)
})

// 监听3009端口
app.listen(3009,()=>console.log("服务器运行在3009端口"))

就这么多,然后打开终端运行就可以

node app.js

下面就可以在项目中使用axios发送请求了

/** post 请求
*	参数一 请求的地址
*	参数二 请求的数据
*  这里在服务器端把需要跨域的地址用url传递过去
*  服务器端使用cors解决跨域问题,返回数据
*/
axios.post("http://localhost:3009/api/v1/proxy",
{url:"https://api-m.mtime.cn/Showtime/LocationMovies.api?locationId=290"})
.then(res=>{
console.log(res)
})

这种方法把,说实话已经很简单了。当然如果你有兴趣可以用express应用程序生成器来完善服务器端代码
但是这种方法等于再写了一个文件。
我们也可以使用webpack-dev-server来配置代理, = =! 我好像写过
这篇文章找到热更新就可以看到

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: