问题提出
跨域问题一般在浏览器中这样提示
Access to XMLHttpRequest at 'url1' from origin 'http://127.0.0.1:8686' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header has a value
背景介绍
1995年,同源政策由 Netscape 公司引入浏览器。目前,所有浏览器都实行这个政策。
最初,它的含义是指,A 网页设置的 Cookie,B 网页不能打开,除非这两个网页“同源”。所谓“同源”指的是“三个相同”:
- 协议相同
- 域名相同
- 端口相同
同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。
正式服务器因为部署原因,都是同源,也就不会出现跨域,实际开启跨域也需要后端来控制。
开发过程中服务端域名和客户端域名不一致会出现跨域。
现在浏览器主要使用CORS标准来实现跨域。
CORS 是一个 W3C 标准,全称是跨域资源共享(CORSs-origin resource sharing),它允许浏览器向跨源服务器,发出XMLHttpRequest请求。
其实,准确的来说,跨域机制是阻止了数据的跨域获取,不是阻止请求发送。
CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。文章来源:https://www.toymoban.com/news/detail-782864.html
因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨域通信。文章来源地址https://www.toymoban.com/news/detail-782864.html
解决步骤
- 创建文件夹 myChromeData(文件夹名称可随意配置)
- 创建一个shell脚本文件.sh格式。新增文件之后改后缀即可。可以使用任何编辑器打开。
- 把下面代码复制进去 (xxx 是自己用户名 切记要改;–user-data-dir= ‘第1步创建文件的本地路径’ )
open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/xxx/myChromeData
- 将写好的shell脚本拖入mac的终端,回车即可执行
- 出现下方文字提示即算成功
参考引用
[1]: 详解浏览器跨域的几种方法
到了这里,关于Mac版chrome谷歌浏览器解决跨域,进行开发调试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!