跨域简便解决方法
jsonp和CORS等解决方案都依赖于后端协助,前端要独立解决跨域,可以使用以下方法。
1. webpack-dev-server添加代理
在开发模式使用webpack-dev-server的情况下,可以在devServer的配置中添加proxy,可以直接进行转发,解决跨域,
具体可以参考详解Webpack-dev-server的proxy用法,以及http-proxy-middleware的用法
2. chrome浏览器插件
例如:Allow-Control-Allow-Origin: * 这个插件或者Allow CORS: Access-Control-Allow-Origin 0.1.0这个插件,
可以在浏览器返回请求添加Allow-Control-Allow-Origin相关的header,从而欺骗浏览器为允许跨域。
返回的内容,在js中可以访问,但是在chrome中的Network看不到具体的XHR的内容。
还有,XSwitch这个插件,参考
3. 使用fiddler或charles等拦截软件
fiddler可以使用fiddler script的方式来修改请求的详细参数,例如返回头中的Allow-Control-Allow-Origin,fiddler script的详细介绍可以参考这篇文章
如果是https请求,需要开启fiddler对https请求的拦截。
使用此方法,在浏览器的Network中可以看到XHR请求的信息。
具体步骤:
1. 从工具栏菜单的 Rules->Customize Rules 进入Customize Rules.js
2. 在Customize Rules.js的OnBeforeResponse中添加
static function OnBeforeResponse(oSession: Session) { if (m_Hide304s && oSession.responseCode == 304) { oSession["ui-hide"] = "true"; } //允许所有的请求, 不支持cookie,方法1 //oSession.oResponse.headers.Add("Access-Control-Allow-Origin","*"); //允许指定域名的请求,支持cookie,方法2 if(oSession.uriContains("https://www.baidu.com")){ oSession.oResponse["Access-Control-Allow-Origin"] = "允许的域名:端口"; oSession.oResponse["Access-Control-Allow-Credentials"] = true; } }
更多fiddler脚本和跨域内容,可参考这篇文章
4. 使用nginx或charles设置代理
此方法与修改Access-Control-Allow-Origin的header的原理不同,修改header是伪装请求,只是欺骗浏览器,使用代理,中间层进行转发和回发,后端无跨域限制,是避开了跨域。
4.1 nginx反向代理
首先,nginx代理本地和远程站点
代理本地的node站点,访问页面不再从localhost开始,而是从nginx的域名开始。因为localhost已经被本地node站点占用,nginx再使用就会冲突。
配置几个要代理的地址,这样就可以把不同的地址代理到不同的站点
server { listen 80; server_name www.aa.com aa.com; access_log logs/test.access.log; location / { proxy_pass http://localhost/; } location /koa1 { proxy_pass http://localhost:9001/; } location /koa2 { proxy_pass http://www.other.com/; } }
其次,要设置本地的hosts文件
添加 127.0.0.1 www.aa.com aa.com
如此,访问 aa.com,就可以完成跨域访问
其他方式,charles代理设置和nginx代理设置,可以参考这篇文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2017-01-06 正则表达式总结