当前位置: 首页 > 编程笔记 >

Ajax犯的错误处理方法

邰宇
2023-03-14
本文向大家介绍Ajax犯的错误处理方法,包括了Ajax犯的错误处理方法的使用技巧和注意事项,需要的朋友参考一下

1, ajax 发送请求时状态判断 if else 语句问题。

var xhr = new XMLHttpRequest(); 
xhr.open("get",strUrl);<br>
<br>xhr.onreadystatechange = function(){   
<br><br>   
 if(xhr.readyState === 4){ 
<br><br><em id="__mceDel">        
if(xhr.status ===200){   
console.log(xhr.responseText);      
}  
<br><br></em><em style="line-height: 1.5;" id="__mceDel">
<em id="__mceDel"><em id="__mceDel"><em id="__mceDel">    
}else </em></em></em></em><em style="line-height: 1.5;" id="__mceDel"><em id="__mceDel"><em id="__mceDel">
<em id="__mceDel"><em id="__mceDel">{<br>    
console.log(xhr.status); }  
<br> }</em></em></em></em></em> 
xhr.send(); 

  当时输出了两个200 的状态码,然后才输出xhr.responseText, 获取到的内容。 当时很奇怪,不知道这两个200 是怎么来的?

  当时尝试输出不少内容,但还是找不到原因。 只有到把else 语句中改为 console.log(xhr.readystate)才发现了问题,这时输出结查依次是2,3,获取到的内容。 这时才发现原因:

  xhr 发送请求到请求结束,会经过5种状态,状态码依次是0,1,2,3,4(就是readystate 的值),状态每发生改变一次,就会触发readystatechange事件,调用事件处理函数。 当 状态码是变化到2时,它调用readystatechange 事件,然后走 if/else 语句,

这是 readystate 显然不是4,然后走else 语句 输出 2. 以此类推,3,4 的时候再调用readystatechange 事件, 只有4 时才走if 里面的内容,请求成功,返回请求内容。

以上所述是小编给大家介绍的Ajax犯的错误处理方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 问题内容: 我已经在这里搜索了问题,但是我对如何在jQuery的AJAX中使用错误处理没有很好的了解(我是菜鸟,所以这真的没有意义。) 有人可以向初学者描述吗?我目前正在通过AJAX将信息发布到PHP脚本,但希望允许jQuery识别从脚本返回的数据是错误还是成功。 谢谢!戴夫 问题答案: 从ajax调用返回的错误是从不成功的页面加载返回结果。可能是您的php页面返回了一个有效的页面,但是结果不是您

  • 本文向大家介绍如何处理jQuery AJAX错误?,包括了如何处理jQuery AJAX错误?的使用技巧和注意事项,需要的朋友参考一下 处理jQuery AJAX错误。每当AJAX请求失败时,ajaxError(callback)方法都会附加一个要执行的函数。这是一个Ajax事件。 这是此方法使用的所有参数的描述- callback- 要执行的功能。用于该请求的XMLHttpRequest和设置将

  • 问题内容: 分支出类似这样的问题,我希望包装jQuery的$.ajax()方法,以便可以在一个位置提供错误处理,然后该错误将由应用程序的所有远程调用自动使用。 简单的方法是简单地创建一个新名称,类似于$ .get()和$ .post()如何将外观实现为$ .ajax()。但是,我希望重用名称$.ajax(),以便我们可以使用标准jQuery语法保留其余代码,而隐藏了我们添加了自己的错误处理的事实。

  • 问题内容: 当我的网站是100%jQuery时,我曾经这样做: 为401错误设置全局处理程序。现在,我将angularjs与和一起使用,以向服务器发送(REST)请求。有什么办法可以类似地用角度设置全局错误处理程序吗? 问题答案: 我还在建立一个带有angular的网站,并且遇到了同样的障碍来处理全局401。当我遇到此博客文章时,我最终使用了HTTP拦截器。也许您会发现它和我一样有用。 “基于An

  • 问题内容: 假设我有以下jQuery AJAX调用: 现在,当进行此AJAX调用时,我希望服务器端代码通过一些错误处理检查来运行(例如,用户是否仍在登录,他们是否有权使用此调用,数据是否有效,等等)。如果检测到错误,如何将错误消息冒泡回客户端? 我最初的想法是返回一个带有两个字段的JSON对象:error和errorMessage。然后将在jQuery AJAX调用中检查以下字段: 这对我来说有点

  • 通过对错误类型实现 Display 和 From,我们能够利用上绝大部分标准库错误处理工具。然而,我们遗漏了一个功能:轻松 Box 我们错误类型的能力。 标准库会自动通过 Form 将任意实现了 Error trait 的类型转换成 trait 对象 Box<Error> 的类型(原文:The std library automatically converts any type that imp