chrome浏览器处理本地Ajax跨域
chrome浏览器下
项目开发过程中,用到了Ajax异步请求。若将项目放在本地服务器中,通过localhost访问文件,不会报错。若直接通过file://访问文件就会报错。
报错信息:
XMLHttpRequest cannot load file:///C:/wamp/www/ejs/abc.ejs. Cross
origin requests are only supported for protocol schemes: http, data,
chrome, chrome-extension, https, chrome-extension-resource.
这是因为直接通过file://访问文件,Ajax本地跨域。浏览器为了安全性考虑,默认对跨域访问禁止。
解决方法1:将项目放在本地服务器中,通过localhost访问文件。
解决方法2:给浏览器传入启动参数(allow-file-access-from-files),允许跨域访问。
(1)直接在快捷键图标右键,点击属性,修改目标(在后面加上–allow-file-access-from-files,注意–前面有一个空格),这样就可以正确访问了。
(2)也可以通过cmd控制台,输入
“C:\Program Files (x86)\Google\Chrome\Application\chrome.exe” –allow-file-access-from-files
这样就可以正确访问了。
其他浏览器:
360安全浏览器、360极速浏览器:设置同chrome浏览器
IE浏览器、火狐浏览器:试验了一下,似乎浏览器没有对跨域访问禁止。