Ajax在Chrome中执行本地文件跨域问题

Ajax在Chrome中执行本地文件跨域问题

学习前端也开始接触了ajax,因为一直不是很理解,今天看尚硅谷的课程,又学习了一遍,但是还是遇到了跨域问题。
今天练习的是尚硅谷的ajax本地html调用本地txt文件,总体代码如下:

<script type="text/javascript">
  // 1 阻止链接的默认行为
    window.onload = function(){
      document.getElementsByTagName("a")[0].addEventListener("click", function(e){
        // 1 创建XMLHttpRequest对象
        var request = new XMLHttpRequest();
        request.withCredentials = true;
        // response.addHeader('Access-Control-Allow-Origin:*');//允许所有来源访问 
        // response.addHeader('Access-Control-Allow-Method:POST,GET');//允许访问的方式

        // 准备发送请求
        var url = this.href;
        var method = 'GET';
        request.onreadystatechange = function(){
          alert(request.readyState);
          // 判断相应是否完成,这个对象的readystate属性值为4的时候表示响应完成
          if(request.readyState == 4){
             // 判断响应是否可用,使用对象的state值,如果是200的话,就是成功
             console.log(request.status)
             
            if(request.status == 200 || request.status == 0){
           //为了调试问题出错
              alert("good");
              // 正常返回打印响应结果:responseText
              alert(request.responseText);
            }else{
              alert("shibai")
            }
            
          }
        }
        request.open(method, url, true);
        // 调用open方法
        // 调用send方法
        request.send(null);
        // 为对象添加onreadystatechange相应函数
        alert("444");
        e.preventDefault();

      })
       
      }
  </script>

Chrome无法调试本地ajax

首先因为我一直使用的是Chrome来调试的,而且因为暂时没有接触到tomcat什么的在可以localhost打开我的html文件,所以调试的时候一直出现跨域问题不好解决。
首先在Chrome中是不允许file开头的文件进行跨域的,就是本地文件不能调用,这个问题需要右击谷歌浏览器的图标,选择属性,在其目标里添加–allow-file-access-from-files,和原来的内容之间必须有空格
注意:改完之后打开使用以管理员方式运行,不然还是会出现跨域问题的
在这里插入图片描述
点击应用,然后确定即可。

跨域解决后status为0问题

到这里应该是解决了不能本地文件ajax问题,接着又出现了不执行这个代码的问题

if(request.status == 200 || request.status == 200){
	alert(request.responseText);}

检查之后发现是因为我当前的html调用这个txt文档,status的结果是0,找了一圈发现这个博主做了解答解决办法
是因为我这边使用ajax的时候是本地文件调用本地文件,没有通过服务器,所以直接本地打开了,所以不存在status的值为200或者304,而需要将其设置为0即可。
综上今天算是解决了我本地调试出现的ajax跨域问题。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值