whistle代理的基本使用
在通常情况下,出现跨域问题是因为浏览器的同源策略(Same-Origin Policy)限制了从一个源(origin)发起的 HTTP 请求到另一个不同源的地址。为了解决这个问题,你可以使用 whistle
来设置代理和跨域资源共享(CORS)规则。
whistle官方文档
关于whistle · GitBook (wproxy.org)
以下是如何配置 whistle
来解决跨域问题:
安装和启动 whistle:
首先确保你已经安装了 Node.js 和 whistle,如果没有,可以通过以下命令安装 whistle:
1
npm install -g whistle
然后启动 whistle:
1
w2 start
配置 whistle:
创建一个 whistle 的规则文件,比如
whistle.rules
,用于定义代理和跨域资源共享(CORS)规则。在这个文件中添加以下内容:1
2
3
4
5
6# 设置代理
https://api.juejin.cn/booklet_api/v1/booklet/listbycategory?aid=2608&uuid=7384269412516578816&spider=0 127.0.0.1:8000
# 设置跨域资源共享(CORS)
/booklet_api/v1/booklet/listbycategory?aid=2608&uuid=7384269412516578816&spider=0
enableCors('https://juejin.cn', 'GET,POST', 'accept,accept-language,content-type,priority,sec-ch-ua,sec-ch-ua-mobile,sec-ch-ua-platform,x-secsdk-csrf-token', 'true')- 第一行配置了将
https://api.juejin.cn/booklet_api/v1/booklet/listbycategory?aid=2608&uuid=7384269412516578816&spider=0
的请求代理到本地的127.0.0.1:8000
端口。 - 第二行配置了跨域资源共享(CORS),允许来自
https://juejin.cn
的请求使用GET
和POST
方法,允许的请求头包括accept,accept-language,content-type,priority,sec-ch-ua,sec-ch-ua-mobile,sec-ch-ua-platform,x-secsdk-csrf-token
,并设置Access-Control-Allow-Origin
为true
。
- 第一行配置了将
启用规则文件:
将
whistle.rules
文件放置在 whistle 的配置目录下,通常是~/.WhistleAppData/rules/
,然后重新启动 whistle 或使用命令w2 restart
来加载新的规则文件。测试:
现在重新加载页面或重新发送请求,应该能够成功访问
https://api.juejin.cn/booklet_api/v1/booklet/listbycategory
并解决跨域问题。
通过这种方式,你可以利用 whistle 的代理和规则功能来解决浏览器中出现的跨域请求问题,同时还能灵活地控制请求和响应的流量。
如果你的本地开发服务器运行在 http://127.0.0.1:5500
,而你想通过 whistle
来代理这个本地服务器上的页面和请求,可以按照以下步骤进行配置:
安装和启动 whistle:
确保你已经安装了 Node.js 和 whistle。如果没有,可以通过以下命令安装 whistle:
1
npm install -g whistle
然后启动 whistle:
1
w2 start
配置 whistle:
创建一个 whistle 的规则文件,比如
whistle.rules
,用于定义代理和跨域资源共享(CORS)规则。在这个文件中添加以下内容:1
2
3
4
5
6# 设置代理
http://127.0.0.1:5500/ 127.0.0.1:8000
# 设置跨域资源共享(CORS)
/example/
enableCors('http://127.0.0.1:5500', 'GET,POST', '*', 'true')- 第一行配置了将以
http://127.0.0.1:5500/
开头的请求代理到本地的127.0.0.1:8000
端口。这里假设你的本地开发服务器运行在http://127.0.0.1:5500
。 - 第二行配置了跨域资源共享(CORS),允许来自
http://127.0.0.1:5500
的任何请求使用GET
和POST
方法,并允许所有的请求头,同时设置Access-Control-Allow-Origin
为true
。
- 第一行配置了将以
启用规则文件:
将
whistle.rules
文件放置在 whistle 的配置目录下,通常是~/.WhistleAppData/rules/
,然后重新启动 whistle 或使用命令w2 restart
来加载新的规则文件。测试:
确保你的本地开发服务器正在运行,并且通过
whistle
配置的代理和 CORS 规则来访问页面和发起请求。例如,如果你的页面位于http://127.0.0.1:5500/example/index.html
,可以直接在浏览器中访问该页面,或者在页面中包含 JavaScript 请求。
通过这种方式,你可以使用 whistle
代理你本地开发服务器上的页面和请求,并解决跨域问题,从而方便地进行开发和调试。
1 | <template> |