如果还不了解跨域和同源策略的同学,可以去看一下第一篇,链接如下:跨域哪些事——1.如果没有跨域,世界会是怎样? - 文章 - 开发者社区 - 火山引擎 (volcengine.com)
今天介绍一下使用第三方chrome插件实现跨域,这样的插件有很多,本文中以Allow CORS: Access-Control-Allow-Origin 插件为例做介绍。
chrome插件地址:Allow CORS: Access-Control-Allow-Origin - Chrome App Store (google.com)
Allow CORS官网:Community for open-source projects :: MyBrowserAddon
本插件可以轻松将 (Access-Control-Allow-Origin: *) 规则添加到响应标头。
Allow CORS: Access-Control-Allow-Origin 让您可以轻松地在 Web 应用程序中执行跨域 Ajax 请求。 CORS 或跨源资源共享在现代浏览器中默认被阻止(在 JavaScript API 中)。安装此附加组件将允许您取消阻止此功能。当加载项添加到您的浏览器时,它默认处于非活动状态(工具栏图标为灰色 C 字母)。如果要激活附加组件,请打开工具栏弹出窗口并按左侧的切换按钮。该图标将变为橙色 C 字母。
开启的图标:
关闭的图标:
其实使用浏览器插件实现跨域也是CROS跨域的一种实现,他和上一篇文章中的nginx一样,起了一个中间件的作用。如果不了解可以看前两篇文章:跨域哪些事——4. 使用CROS实现跨域 - 文章 - 开发者社区 - 火山引擎 (volcengine.com) 、跨域哪些事——5.使用Nginx解决跨域 - 文章 - 开发者社区 - 火山引擎 (volcengine.com) 。是用浏览器插件在浏览器和服务器之间做了一层代理,把原来不允许跨域的请求用CROS跨域规范包装,使可以实现跨域。流程大家可以参照下图。
没有代理时的响应头:
插件代理后的响应头:
使用第三方浏览器插件进行跨域,是解决前后端跨域联调问题,大部分情况是一种前端在项目开发联调中的方式,可以方便前后端联调,不可能作为产品提供给客户。它的原理是浏览器插件把相应头和请求投添加CROS规范,让浏览器任务这个请求是符合跨域规范的。