whistle解决前后端跨域问题

97 阅读1分钟

跨域

在前端开发中,经常会遇到前端请求后端接口跨域,所谓跨域,指后端接口与前端的协议或者域名或者端口不一致,有很多项目是webpack或vite项目,这些项目可以通过配置proxy解决跨域问题,但在一些传统项目中,项目自身没有proxy功能,此时需要借助第三方代理工具来解决,whistle是常用的解决工具之一。

代理的原理

跨域是浏览器自身的机制,代理的原理,是浏览器请求代理,保持浏览器和代理同源,代理再请求后端,代理没有跨域机制可直接请求,代理请求接口获取请求接口再返给浏览器。

whistle的使用

安装

npm install -g whistle

启动

 w2 start

下载&&安装https证书

  • windows:

下载证书:

img_v3_02oa_1225321c-bf9a-4ab2-a3e9-0b0c75865e0g.jpg

安装证书:

  1. 双击下载到本地的证书文件
  2. 点击“安装证书”

img_v3_02oa_5fb10827-18ac-4ce7-a94f-296815502eeg.jpg 3. 选择“存储位置”

img_v3_02oa_b740d5da-608b-4eca-85bf-d6168f2110fg.jpg

  1. 选择“受信任的根证书颁发机构”

img_v3_02oa_7895f9f7-1dc6-47be-8949-abff0c906e5g.jpg

img_v3_02oa_4788831e-8ae5-4afe-abe0-01ca6a1f5dag.jpg

安装Chrome浏览器插件“Proxy Switch”

img_v3_02oa_bce92fc1-6e4d-4644-98b1-1f14a00b828g.jpg 安装后所有通过chrome请求的地址都会被代理。

配置

浏览器访问启动后打印的地址

  • 配置rules, 实现请求转发

img_v3_02oa_152c9d42-b010-4e10-8ece-7ea7b7ec0abg.jpg

  • mock响应数据
  1. 在“Network”中选中需要mock的url请求,右键选择“mock”
  2. 修改新的返回数据

76e76029-46c6-4f23-a44d-c73a5d3e071c.jpeg 保存后在“rules”中生成一条新的规则:

img_v3_02oa_b2edf2dc-a3c2-4aea-b8d2-f3016efd9f1g.jpg 再次请求“百度”,返回如下:

img_v3_02oa_810527e6-efc7-4e81-a042-1ac40625075g.jpg

  • 其他功能待解锁