代理服务器实现跨资源共享

175 阅读1分钟

app.js中的使用方法:

var app = express();
//注意 代理配置要放到路由配置之前  代理服务器不需要考虑参数
//或者使用代理模块 http-proxy-middleware 实现请求的代理转发
var proxy = require('http-proxy-middleware')
// 使用app.use实现代理 第一个参数是本地的同源接口 第二个参数配置代理
app.use('/getDouyu', proxy.createProxyMiddleware({  //创建一个代理
  // 这个参数对象实现代理配置
  //代理的目标服务器配置
  target: 'http://open.douyucdn.cn/api/RoomApi/live',
  changeOrigin: true,  //是否需要改变原始主机头为目标URL
  pathRewrite: {       //路径重写 把同源路径从url中删掉
    '^/getDouyu':''
  }
}))  

在index.js中的使用方法:

//使用代理模块 http-proxy-middleware 实现请求的代理转发
// 使用 cnpm i http-proxy-middleware 导入模块
var proxy = require('http-proxy-middleware')
/* 代理服务器中同源请求接口 */
router.get('/getData', function (req, res, next) {
  // 同源服务器(代理服务器)发起跨域的Ajax请求 从第三方服务器获取数据
  fetch('http://open.douyucdn.cn/api/RoomApi/live?page=' + req.query.page)
    .then(res1 => res1.json())
    .then(res2 => {
      console.log(res2);
      res.json(res2)
    })
});