您的位置:首页 > 理论基础 > 计算机网络

Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension,

2016-12-07 10:10 645 查看
问题:打开本地文件时,报错如下:

将html代码拖拽进入chrome通过file协议浏览时,发送的ajax请求本地文件,会报跨域错误。

XMLHttpRequest cannot load file:///E:/webs/extJS/ext-3.3.0/examples/csdn/combobox.txt?_dc=1414738973999. Cross origin requests are only supported for protocol schemes: http, data, chrome-extension, https, chrome-extension-resource.


分析:浏览器为了安全性考虑,默认对跨域访问禁止。

解决办法是给chrome添加启动参数:–allow-file-access-from-files ,这样本地ajax请求就不会报跨域错误了。(注意如果给chrome添加多个启动参数,每个启动参数“–”之前要有空格隔开,如”C:\Program Files\Google\Chrome\Application\chrome.exe” –enable-file-cookies –allow-file-access-from-files)

  如何添加chrome启动参数以便支持file协议下的ajax请求,具体看这个:chrome无法保存本地设置cookie解决办法

要想chrome本地设置的cookie也要能保存,需要配置过chrome,给chrome快捷方式添加 --enable-file-cookies启动参数,右键点击chrome桌面快捷图标,属性,在目标最后添加--enable-file-cookies启动参数,注意--前面要有空格。
添加了--allow-file-access-from-files启动参数后,还可以解决本地file加载文件,导致iframe和父页无法相互访问,window.open打开的页面使用opener为null的问题,参考:chrome本地测试访问iframe,parent,opener null解决办法


如下图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  chrome ajax
相关文章推荐