ajax如何请求本地txt文件时

来源:互联网 发布:那个基金软件好 编辑:程序博客网 时间:2024/05/17 07:57

这个坑还是要记录一下。
在使用ajax请求本地的txt文件时,发现不能获取本地的文件,以为自己的代码有问题,经过几番捣鼓发现原来是跨域请求的问题。只有火狐浏览器允许获取本地文件,Chrome浏览器以及IE等浏览器默认状态下是不允许获取的,个人对Chrome浏览器太执着,于是又搜索了一下Chrome如何处理跨域请求的问题,开始入坑~~~
看到有好多网友说在Google的快捷方式右键属性,
然后在目标一栏加上 –allow-file-access-from-files,
再点击 应用和确定就好。
然而我就傻傻地以为这样没问题了,又开始怀疑是我的代码有问题,于是我就借用了网友们贡献的代码做了测试,我的乖乖,还是不行。这下要崩溃了,难道是我的电脑问题?感觉自己像个傻子。傻哭。
几经搜索发现是Chrome浏览器版本更新之后的问题

解决方案来自包子源的博客http://blog.csdn.net/ziwoods/article/details/51062206

在之前版本的Chrome浏览器中使用 –args –disable-web-security
(当然我也没去验证 –allow-file-access-from-files在之前的版本是否也可以,反正现在的版本不行)
2016年3月之后的Chrome新版本需要使用 –args –disable-web-security –user-data-dir(注意空格)
终于把问题解决了。

感叹一下:在这个快速更新的时代,要掌握及时的信息啊。

附上ajax请求代码:(不考虑IE的情况下)

var btn = document.getElementById("btn");btn.addEventListener("click",  function() {    var xhr =new XMLHttpRequest()    xhr.open("GET", "data.txt", true);//注意路径问题读取data.txt文件的内容。    xhr.send(null);    xhr.onreadystatechange = function() {      if (xhr.readyState == 4) {        if (xhr.status == 200||xhr.status==0) {//请求本地txt文件时状态码是0。          alert(xhr.responseText);        } else {          alert(xhr.status);        }      }    }  }, false)

另外需要注意的是ajax请求要依赖DOM事件的触发才能请求到文件,如上例中的click事件。

另外还有一种解决所有浏览器都能跨域访问文件的方法:
详见:http://www.lhysky.com/2017/03/14/problem-cross-domain/

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 新鞋鞋底吱吱响怎么办 新鞋鞋底滑了怎么办 工作中同事不配合怎么办 做体力活一身疼怎么办 大脑左则中动脉血管狭窄?怎么办 儿童体质差免疫力差怎么办 nba篮球大师体力不够怎么办 一千米差10秒怎么办 四十岁以后体力和耐力差怎么办 打篮球一打比赛就紧张怎么办 耐克空军鞋鞋底边胶掉了怎么办 鞋底踩到老鼠胶怎么办 头蒙怎么办最快最有效 备孕老公压力大怎么办 宝宝太兴奋不睡怎么办 我很烦只睡三小时觉怎么办才好 柯基精力太旺盛怎么办 孩子学习熬夜精力不足怎么办 肺癌晚期吃不下饭怎么办 这俩天吃药太多肝肾功能不好怎么办 跑步跑得头疼晕怎么办 吃完辣的想吐怎么办 体育生暑假训练太累怎么办 高强度运动后性功能不好怎么办 运动后第二天全身酸痛怎么办 运动后心慌想吐怎么办 激素停后全身疼怎么办 运动完头晕想吐怎么办 跑了步全身酸痛怎么办 运动后全身没力气怎么办 学完游泳不会换气怎么办 猫不吃饭精神不好怎么办 运动完头晕目眩想吐怎么办 酒后第二天恶心想吐怎么办 剧烈运动后肌肉酸痛怎么办 剧烈运动后吐了怎么办 长跑后头晕想吐怎么办 运动后一直想吐怎么办 跑多了恶心想吐怎么办 剧烈运动恶心想吐怎么办 长跑之后 恶心想吐怎么办