使chrome支持跨域访问

原文:https://www.cnblogs.com/gosky/p/5517421.html 

在做后台开发的时候,使用了iframe框架。后台主页面如下:

复制代码
<div style="width:185px; overflow: hidden;" id="west" data-options="region:'west',split:true,title:'功能菜单'"> <div class="easyui-accordion" fit="true" border="false"> <iframe name="leftFrame" id="leftFrame" width="100%" height="100%" scrolling="yes" frameborder="NO" style="width:100%;" allowTransparency="true"></iframe> </div> </div> <div id="mainPanle" region="center" style="background: #eee; overflow:hidden; z-index: 10;"> <!--height:100%;--> <div id="tabs" class="easyui-tabs" fit="true" border="false"> <!--style="height:100%;"--> <div title="欢迎使用" style="text-align:center;width:100%;height:100%;vertical-align:middle; text-align:center;" id="home"> <iframe name="mainFrame" scrolling="auto" height="99%" width="100%" frameborder="0" src="welcome.html" ></iframe> </div> </div> </div>
复制代码

菜单页面在leftFrame中打开,点击菜单调用父页面的一个js方法:

window.parent.addTab(menuid,menuname,url);

上面的代码发布到服务器下访问没问题,但是在本地文件路径下执行就会报错:

这里设计到跨域访问的问题,如果非要在本地来访问,可以这是chrome的参数。

1.打开chrome快捷方式->属性

2.末尾添加:

 --args --disable-web-security

3.重新启动浏览器

注意:

如果你的chrome版本是49以上,则需要做如下设置

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir=E:\MyChromeDevUserData

蓝色部分可以自定义

 

 

浏览器允许跨域设置(不用于生产环境,开发用)

 

Firefox

之前看过FF下关闭跨域限制的方法:

firefox安全性强,不允许跨域调用。Firefox 要取消XMLHttpRequest的跨域限制的话

  1. 从 about:config 里设置 signed.applets.codebase_principal_support = true; (地址栏输入about:config 即可进行firefox设置)
  2. 在open的代码函数前加入类似如下的代码:
try {
    netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
} catch (e) {
    alert("Permission UniversalBrowserRead denied.");
} 

Chrome

做前后分离的webapp开发的时候,出于一些原因往往需要将浏览器设置成支持跨域的模式,好在chrome浏览器就是支持可跨域的设置,网上也有很多chrome跨域设置教程。但是新版本的chrome浏览器提高了跨域设置的门槛,原来的方法不再适用了。下面笔者简单介绍一下新版本chrome的跨域设置方法。

版本号49之前的跨域设置

先介绍一下老方法,参考了一些网上的教程,其实直接在打开命令上加--disable-web-security就可以了。

具体做法为:

1.下载并安装好chorme浏览器后在桌面找到浏览器快捷图标并点击鼠标右键的属性一栏。
2.在属性页面中的目标输入框里加上   --disable-web-security  如下图所示:

3.点击应用和确定后关闭属性页面,并打开chrome浏览器。如果浏览器出现提示“你使用的是不受支持的命令标记 --disable-web-security”,那么说明配置成功。

版本号49之后的chrome跨域设置

chrome的版本升到49之后,跨域设置比以前严格了,在打开命令上加--disable-web-security之后还需要给出新的用户个人信息的目录。众所周知chrome是需要用gmail地址登录的浏览器,登录后就会生成一个存储个人信息的目录,保存用户的收藏、历史记录等个人信息。49版本之后,如果设置chrome浏览器为支持跨域模式,需要指定出一个个人信息目录,而不能使用默认的目录,估计是chrome浏览器怕用户勿使用跨域模式泄露自己的个人信息(主要是cookie,很多网站的登录token信息都是保存在cookie里)。

具体做法为:

1.在电脑上新建一个目录,例如:C:\MyChromeDevUserData

2.在属性页面中的目标输入框里加上   --disable-web-security --user-data-dir=C:\MyChromeDevUserData,--user-data-dir的值就是刚才新建的目录。

3.点击应用和确定后关闭属性页面,并打开chrome浏览器。

再次打开chrome,发现有“--disable-web-security”相关的提示,说明chrome又能正常跨域工作了。

跨域成功后,首页换成了google的welcome页面,同时原来收藏的链接和历史记录都不见了,而C:\MyChromeDevUserData目录下则生成了新的个人信息相关的文件。

posted @   a瑶池  阅读(1154)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2017-11-07 ajax函数说明
点击右上角即可分享
微信分享提示