Jquery的load加载本地文件出现跨域错误的解决方案
Posted jing-tian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jquery的load加载本地文件出现跨域错误的解决方案相关的知识,希望对你有一定的参考价值。
如果用原生的AJAX是加载本地文件就不会出现错误。当然,这个jquery的load放在服务器上通过http加载还是支持的。也有例外比如在firefox和ie浏览器使用$.ajax加载本地html或txt文件时,不会报错。
当其他浏览器控制台弹出下面报错,表明这个不支持跨域浏览本地文件:
Access to XMLHttpRequest at ‘file:///F:/%E4%BB%A3%E7%A0%81/Jquery/a.txt‘ from origin ‘null‘ has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
其实 ,禁止跨域是浏览器的安全限制机制,在每个浏览器下都有,如在chrome、Firefox、opera 、360 都是这样的,同样会报告上述错误,但是可以通过设置来绕过这个限制(如果经常 完前端代码 建议在本机装个web容器。。。),常见的方式是 右击chrome快捷方式,选择“属性”,在“快捷方式”下的“目标”中添加" --allow-file-access-from-files"(最前面有个空格),重启chrome即可如下:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files //注意有空格,关闭浏览器然后重启浏览器即可支持
Jquery的load()一般是加载服务器上的文件(非本地文件),这个概念需要弄清楚。要发布网站后通过http协议进行访问,本地file协议浏览会产生跨域问题。
除非是静态文件html调用load,但是这个也是有的浏览器支持,有的不支持。
以上是关于Jquery的load加载本地文件出现跨域错误的解决方案的主要内容,如果未能解决你的问题,请参考以下文章
jQuery中的ajaxjquery中ajax全局事件load实现页面无刷新局部加载ajax跨域请求jsonp利用formData对象向服务端异步发送二进制数据
jquery load()怎么解决跨域加载页面 比如$("#id").load("www.demo.com/?ct=index&ac=index") 谢
向html页面通过jquery的$.load加载html页面如何实现!急急急