whistle代理跨域问题
whistle代理本地js替换线上js,遇到跨域问题,怎么办?
【背景】
- 昨天遇到遇到一个线上问题,需要配置whistle代理,用本地js替换线上js,配置规则如下:
https://xxx.com/test.15c9d326009ac20d44c5.js http://127.0.0.1:8080/test.js
【问题】
- 代理规则配置后,然后在chrome devTools里面遇到如下报错:
【分析】
-
看了一下代码,因为代理的js,采用了script标签crossorigin属性,如下图
-
设置了crossorigin就相当于开启了cors校验。详见: script crossorigin 属性
-
看了一下whistle作者的文章: 用 whistle 解决跨域请求问题
【解决方案】
- whistle规则配置时加上
resCors://*
https://xxx.com/test.15c9d326009ac20d44c5.js http://127.0.0.1:8080/test.js resCors://*
【结果对比】
-
whistle里面加了
resCors://*
-
whistle里面不加
resCors://*