使用浏览器扩展实现响应头重写功能,解决跨域问题
文档说明:只记录关键地方; 2023-01-29
环境: chromium 内核
工具: ReplaceGoogleCDN扩展
缘由:临时起意,想看deno
在【微博站点或者微信公众号】中被搜索引擎收录情况,并且把结果显示在指定站点
web跨域技术有:JSONP、CORS、postMessage 、webRTC 、WebSocket、webtransport、BroadcastChannel等
目标: 浏览器扩展实现跨域 ,使用CORS实现跨域
例子总共分三步:(仅用于测试)
-- 步骤一: 添加自定义规则
-- 步骤二: 打开站点 https://www.jingjingxyk.com/ 页面下的web控制台,并执行下面的脚本
-- 步骤三:观察控制台结果(发现,跨域已经被解决,验证完毕)
步骤一: 自定义规则例子:
关键点: 设置
access-control-allow-origin
,最宽泛的是设置为*
,当然也可以设置为指定的站点地址
{ "action": { "requestHeaders": [ { "header": "referer", "operation": "set", "value": "https://www.baidu.com" }, { "header": "origin", "operation": "set", "value": "https://www.baidu.com" } ], "responseHeaders": [ { "header": "access-control-allow-origin", "operation": "set", "value": "*" }, { "header": "set-cookie", "operation": "remove" } ], "type": "modifyHeaders" }, "condition": { "initiatorDomains": [ "justjavac.com", "jingjingxyk.com" ], "requestDomains": [ "www.baidu.com" ], "resourceTypes": [ "main_frame", "sub_frame", "stylesheet", "script", "image", "font", "object", "xmlhttprequest", "ping", "csp_report", "media", "websocket", "webtransport", "webbundle", "other" ], "urlFilter": "https://www.baidu.com/s?ie=utf-8&wd=*" }, "id": 20015, "priority": 10 }
步骤二: web控制台执行如下代码
{ //let url='https://www.baidu.com/s?ie=utf-8&wd=deno%20site%3A%20weibo.com' let url='https://www.baidu.com/s?ie=utf-8&wd=deno%20site%3Amp.weixin.qq.com' fetch(url).then(res=>res.text()).then((res)=>{ let content=(new DOMParser()).parseFromString(res,'text/html').body console.log(content) }) }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术