• jimmy Windows 7    7月29日 11:44

    微博分享

    标签: JQuery

    JQuery使我们在开发Ajax应用程序的时候提高了效率,减少了许多兼容性问题,我们在Ajax项目中,遇到ajax异步获取数据出错怎么办,我们可以通过捕捉error事件来获取出错的信息。

    jquery中ajax的常用用法类似于:

    $(document).ready(function() {
      jQuery("#clearCac").click(function() {
     jQuery.ajax({
       url: url
       type: "post"
       data: { id: '0' }
       dataType: "json"
       success: function(msg) {
     alert(msg);
       }
       error: function(xmlHttpRequest textStatus errorThrown) {
     alert(xmlHttpRequest.status);
     alert(xmlHttpRequest.readyState);
     alert(textStatus);
       }
       complete: function(xmlHttpRequest textStatus) {
     this; // 调用本次AJAX请求时传递的options参数
       }
     });
      });
    });
     
    

    当通过ajax异步调用成功时,会调用 success函数 。success函数语法为:

    //请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态
    function (data textStatus)
    {
     // data could be xmlDoc jsonObj html text etc...   
     this;
    // the options for this ajax request
    }
    

    当通过ajax异步调用出错时,会调用 error函数 。error函数语法为:

    //(默 认: 自动判断 (xml 或 html)) 请求失败时调用时间。
    //参数有以下三个:xmlHttpRequest 对象、错误信息、(可选)捕获的错误对象。
    //如果发生了错误,错误信息(第二个参数)除了得到null之外,
    //还可能是"timeout" "error" "notmodified" 和 "parsererror"。
      
    //textStatus: "timeout" "error" "notmodified" 和 "parsererror"。
     
    error:function (xmlHttpRequest textStatus errorThrown) 
    { 
      
    } 
    

    error事件返回的第一个参数xmlHttpRequest:

    xmlHttpRequest.readyState: 状态码的意思

    0 - (未初始化)还没有调用send()方法

    1 - (载入)已调用send()方法,正在发送请求

    2 - (载入完成)send()方法执行完成,已经接收到全部响应内容

    3 - (交互)正在解析响应内容

    4 - (完成)响应内容解析完成,可以在客户端调用了

    发送error可能有下面两张引起的,或者其他程序问题,需要我们认真仔细。

    1、data:"{}" data为空也一定要传"{}";不然返回的是xml格式的。并提示parsererror.

    2、parsererror的异常和Header 类型也有关系。及编码header('Content-type: text/html; charset=utf8');

    希望本文所述对大家的jQuery程序设计有所帮助。

    上一篇:wamp server 3.0.6允许局域网内访问

    下一篇:PHP命名空间名称解析规则

  • 亲,使用会员登录 QQ帐号登录 后,在线交流才会学到更多知识哦~