首先我们要了解跨域产生的原因:
域名、协议、端口有一个不同就会产生跨域,是浏览器的同源策略引起的
(所谓同源是指:域名、协议、端口相同。)
使用一个中间层来发请求。只需要前端来处理即可。
解决跨域的方式
解决跨域的方式有很多:JSONP、CORS、服务器代理、document.domain、window.name、location.hash、postMessage
主要说一下市面上常见的方式:代理
代理解决跨域:
这里是引用
- 自己写一套nodejs的中间层
- 通过这个中间层去请求,比如说猫眼 (这里不会跨域)
- 前端代码再去请求这个中间层 (这里会跨域,但是可以解决)
原理:客户端向中间层发送请求,中间层又向后端发送请求,后端将数据返回给中间层,中间层再把数据返回给前端。
中间层如何操作
以请求猫眼电影如下地址为例:
http://m.maoyan.com/ajax/movieOnInfoList?token=&optimus_uuid=3AB8F27070A711EAB5F6EFED118239404C0B76B745824C469A76587DC457FAA1&optimus_risk_level=71&optimus_code=10
- 使用 nodejs 启动一个代理服务
- 下载引入http-proxy-middleware这样一个中间件
// 1. 引入 express
const express = require("express");
// 2. 引入 http-proxy-middleware 。并结构出它里面的 createProxyMiddleware 这个函数
const</