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犯的错误处理方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Jquery ajax执行顺序 返回自定义错误信息(实例讲解)

    1.多个Ajax 在一个function中的执行顺序 由于Jquery中的Ajax的async默认是true(异步请求),如果想一个Ajax执行完后再执行另一个Ajax, 需要把async=false就可以了. 复制代码 代码如下: function TestAjax(){            var UserName = $("#txtUserName").val();            $.ajax(            {                url: &quo

  • 使用jquery 的ajax调用总是错误亲测的解决方法

    使用jquery 的ajax功能调用一个页面,却发现总是出现错误. js代码如下 复制代码 代码如下: $.ajax({ type: 'post', url: 'TestData.aspx', data: { language_type: 'cn'}, dataType: 'json', success: function (data) { alert('ok'); }, error: function (data) { alert('err'); }); } TestData.aspx代码如下

  • JQuery ajax中error返回错误及一直返回error的解答

    进入百度搜索此问题,发现有人这么说了一句 Jquery中的Ajax的async默认是true(异步请求),如果想一个Ajax执行完后再执行另一个Ajax, 需要把async=false就可以了 于时我在ajax中进行了处理 async: false,结果发现提交正常的数据返回是正常的没有错误. 代码如下 $.ajax({ type: "POST", async: false, url:urllink, data:data, dataType:"html", succ

  • 空格或者空白字符导致$.ajax()报parseerror错误小结

    反复测试了好久,是水平制表符(\u0009)导致了json格式转换失败,即在后台向前台传输的数据中包含有\u0009,即\t,也就是Tab键,但是在一般网页的输入框内手动无法输入水平制表符,可以利用记事本先输入一个字符串,在字符串的中间按一下键盘的"Tab"键即可,然后通过复制粘贴进行测试.

  • jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法

    query formValidator插件非常好用,但是有一个严重的Bug,在使用ajax验证的时候,如果输入框的内容已经存在,把鼠标放到输入框,不做任何修改再离开,则会提示错误, 这是这个插件犯的一个很愚蠢的错误 复制代码 代码如下: oneIsValid: function(id, index) { var returnObj = new Object(); returnObj.id = id; returnObj.ajax = -1; returnObj.errormsg = ""

  • JQuery.Ajax之错误调试帮助信息介绍

    下面是Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认:" TD 也可以使用,但仅部分浏览器支持. timeout Number 设置请求超时时间(毫秒).此设置将覆盖全局设置. async Boolean (默认: true) 默认设置下,所有请求均为异步请求.如果需要发送同步请求,请将此选项设置为 false.注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行. befor

  • Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法

    下面说一下,最近在使用jquery 1.4中使用$.ajax()方法解析json对象遇到的问题. Json对象是: 复制代码 代码如下: [{name:'二手房出售',infoCount:0,pageUrl:'/ershoufang'},{name:'二手房求购',infoCount:0,pageUrl:'/qiugou'},{name:'二手房装修',infoCount:0,pageUrl:'/esfzhuangxiu'},{name:'二手回收',infoCount:0,pageUrl:'/

  • ASP.NET中MVC使用AJAX调用JsonResult方法并返回自定义错误信息

    一.如何用AJAX调用JsonResult方法 比如FuckController中添加有个返回JsonResult类型的方法FuckJson(): 复制代码 代码如下: <span class="kwd">public<span class="pln"> <span class="typ">JsonResult<span class="pln"> <span class=&

  • jquery中ajax使用error调试错误的方法

    本文实例讲述了jquery中ajax使用error调试错误的方法.分享给大家供大家参考.具体分析如下: JQuery使我们在开发Ajax应用程序的时候提高了效率,减少了许多兼容性问题,我们在Ajax项目中,遇到ajax异步获取数据出错怎么办,我们可以通过捕捉error事件来获取出错的信息. jquery中ajax的常用用法类似于: $(document).ready(function() { jQuery("#clearCac").click(function() { jQuery.a

  • 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">

  • Yii使用ajax验证显示错误messagebox的解决方法

    本文实例讲述了Yii使用ajax验证显示错误messagebox的解决方法.分享给大家供大家参考.具体方法如下: yii 自带了ajax 表单验证 这个可能有些朋友不知道了,但我今天在使用yii 自带的ajax 表单验证 时碰到一些问题,下面我来整理例子与大家参考一下. 在Yii中,可以利用ajax执行一个action,但是这个action有时候会有弹出错误讯息的需求,这时候的处理方式如下 基本思想 利用exception,比如: 复制代码 代码如下: throw new CHttpExcept

  • ASP.NET使用Ajax返回Json对象的方法

    一.新建一个html页面,如注册页面"Register.htm" <!DOCTYPE html> <html > <head> <title>用户注册</title> <meta charset="utf-8" /> <style type="text/css"> .msg { color:Red; } </style> </head> &

  • jQuery中ajax的load()与post()方法实例详解

    本文实例讲述了jQuery中ajax的load()与post()方法.分享给大家供大家参考,具体如下: 一.load()方法 在jQuery ajax的load()方法能够载入远程 HTML 文件代码并插入至 DOM 中,这个与post,get还是有一点的区别,但可以快速在页面加载时就加载一个页面的html保存到dom中并且可执行哦. load()方法默认使用 GET 方式, 如果传递了data参数则使用Post方式. 传递附加参数时自动转换为 POST 方式.jQuery 1.2 中,可以指定

  • Exception in thread main java.lang.NoClassDefFoundError错误解决方法

    错误描述 javac helloworld.java能够通过.但是java helloworld出现错误: hadoop@xuwei-erplab:~/jarfile$ java HelloWorld Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong name: org/xuwei/HelloWorld) at java.lang.ClassLoader.defineClass1(N

  • 详解PHP+AJAX无刷新分页实现方法

    PHP+AJAX无刷新分页实现代码详解,最近在看ajax 教程,就想写个简单入门的PHP+AJAX无刷新分页,我们依据ajax开发框架,代码如下: var http_request=false; function send_request(url){//初始化,指定处理函数,发送请求的函数 http_request=false; //开始初始化XMLHttpRequest对象 if(window.XMLHttpRequest){//Mozilla浏览器 http_request=new XMLH

  • Python新手入门最容易犯的错误总结

    前言 Python 以其简单易懂的语法格式与其它语言形成鲜明对比,初学者遇到最多的问题就是不按照 Python 的规则来写,即便是有编程经验的程序员,也容易按照固有的思维和语法格式来写 Python 代码,之前小编给大家分享过了一篇<Python新手们容易犯的几个错误总结>,但总结的不够全面,最近看到有一个外国小伙总结了一些大家常犯的错误,16 Common Python Runtime Errors Beginners Find,索性我把他翻译过来并在原来的基础补充了我的一些理解,希望可以让

  • HTTP状态代码及其定义解析 Ajax捕捉回调错误参考

    HTTP状态代码及其定义解析 Ajax捕捉回调错误参考 状态行包含HTTP版本.状态代码.与状态代码对应的简短说明信息.在大多数情况下,除了Content-Type之外的所有应答头都是可选的.但Content-Type是必需的,它描述的是后面文档的MIME类型.虽然大多数应答都包含一个文档,但也有一些不包含,例如对HEAD请求的应答永远不会附带文档.有许多状态代码实际上用来标识一次失败的请求,这些应答也不包含文档(或只包含一个简短的错误信息说明). 当用户试图通过 HTTP 访问一台正在运行 I

  • 10个JavaScript中易犯小错误

    在今天,JavaScript已经成为了网页编辑的核心.尤其是过去的几年,互联网见证了在SPA开发.图形处理.交互等方面大量JS库的出现. 如果初次打交道,很多人会觉得js很简单.确实,对于很多有经验的工程师,或者甚至是初学者而言,实现基本的js功能几乎毫无障碍.但是JS的真实功能却比很多人想象的要更加多样.复杂.JavaScript的许多细节规定会让你的网页出现很多意想不到的bug,搞懂这些bug,对于成为一位有经验的JS开发者很重要. 常见错误一:对于this关键词的不正确引用 我曾经听一位喜

随机推荐