
以下是Google Chrome插件请求跨域安全策略实战分享:
1. 理解跨域请求:当一个资源请求如HTTP请求从不同的源(域名、协议或端口)发起时,就会发生跨域请求。浏览器安全策略,默认会阻止这些跨域请求。
2. 检查跨域请求设置:在Chrome浏览器中,每个标签页或窗口都有独立的安全上下文。如果插件试图从一个来源发起对另一个来源的HTTP请求,而目标服务器没有明确允许这种跨源请求,浏览器会阻止该请求。
3. 使用特定插件绕过限制:可以使用crossRequest 3.0等插件来绕过浏览器的同源策略限制,从而允许测试请求访问目标接口。将cross-request.crx文件拖到谷歌浏览器的扩展程序页面,确认即可安装。
4. 利用Chrome扩展特性代理API请求:开发一个浏览器插件,插件中嵌入一个系统项目,在项目中需要调用后端API,但是在外部网页中使用插件时,由于跨域限制,API调用会失败。传统解决方案是在后端配置CORS,但出于安全考虑,可能不适用。可利用Chrome扩展的跨域能力,通过消息传递机制来代理API请求。在封装文件request.js中,通过环境变量判断,如果是插件环境,则走新的请求逻辑。
5. 注意插件打包后的跨域问题:网页存在一个跨域的请求,在正常的运行web界面时是使用jsonp开发实现的,当打包成chrome插件后,安装进浏览器这个跨域请求可能会报错。