Ajax本身是不支持跨域的,而我们在开发工作中,可能会遇到本地开发环境未配置相关代码,需要到其他服务器上获取数据的情况,尤其在用HTML5开发app的过程中,前后台完全分离,使用Ajax进行数据交互,这种情况非常常见。
我们可以通过对谷歌浏览器进行设置,利用命令行标记
版本号49之前的跨域设置
1.首先谷歌快捷方式上右击,在下拉列表中选择属性。
2.打开属性窗口,切换到快捷方式选项卡。
3.在目标路径的后面添加【 –disable-web-security】,格式如下:C:\Users\as\AppData\Local\Google\Chrome\Application\chrome.exe –disable-web-security ,其中chrome.exe与–disable之间有一个空格。
4.点击应用,然后点击确定关闭窗口。
5.关闭浏览器重新通过桌面快捷方式的形式打开浏览器,浏览器提示”您使用的是不受支持的命令行标记: –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目录下则生成了新的个人信息相关的文件。
什么是跨域?
简单的来说,出于安全方面的考虑,页面中的JavaScript无法访问其他服务器上的数据,即“同源策略”。而跨域就是通过某些手段来绕过同源策略限制,实现不同服务器之间通信的效果。
具体策略限制情况可看下表:
总体而言:只要协议、域名、端口有任何一个不同,都被当作是不同的域。