Jquery Ajax Error 调试错误的技巧

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

在没给大家介绍正文之前先给分享Jquery中AJAX参数详细列表:

参数名 类型 描述
url String (默认: 当前页地址) 发送请求的地址。
type String (默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET"。注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。
timeout Number 设置请求超时时间(毫秒)。此设置将覆盖全局设置。
async Boolean (默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
beforeSend Function 发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。XMLHttpRequest 对象是唯一的参数。
function (XMLHttpRequest) {
this; // the options for this ajax request
}
cache Boolean (默认: true) jQuery 1.2 新功能,设置为 false 将不会从浏览器缓存中加载请求信息。
complete Function 请求完成后回调函数 (请求成功或失败时均调用)。参数: XMLHttpRequest 对象,成功信息字符串。
function (XMLHttpRequest, textStatus) {
this; // the options for this ajax request
}
contentType String (默认: "application/x-www-form-urlencoded") 发送信息至服务器时内容编码类型。默认值适合大多数应用场合。
data Object,
String
发 送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1", "bar2"]} 转换为 '&foo=bar1&foo=bar2'。
dataType String

预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息返回 responseXML 或 responseText,并作为回调函数参数传递,可用值:

"xml": 返回 XML 文档,可用 jQuery 处理。

"html": 返回纯文本 HTML 信息;包含 script 元素。

"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。

"json": 返回 JSON 数据 。

"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

error Function (默认: 自动判断 (xml 或 html)) 请求失败时将调用此方法。这个方法有三个参数:XMLHttpRequest 对象,错误信息,(可能)捕获的错误对象。
function (XMLHttpRequest, textStatus, errorThrown) {
// 通常情况下textStatus和errorThown只有其中一个有值
this; // the options for this ajax request
}
global Boolean (默认: true) 是否触发全局 AJAX 事件。设置为 false 将不会触发全局 AJAX 事件,如 ajaxStart 或 ajaxStop 。可用于控制不同的Ajax事件
ifModified Boolean (默认: false) 仅在服务器数据改变时获取新数据。使用 HTTP 包 Last-Modified 头信息判断。
processData Boolean (默认: true) 默认情况下,发送的数据将被转换为对象(技术上讲并非字符串) 以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。
success Function 请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态
function (data, textStatus) {
// data could be xmlDoc, jsonObj, html, text, etc...
this; // the options for this ajax request
}

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

JScript 代码  

$(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 Ajax Error 调试错误的技巧,希望大家喜欢。

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
Window有navigator对象让我们得知浏览器的全部信息.我们可以利用一系列的API函数得知浏览器的信息. JavaScript代码如下: function message(){ txt = "p浏览器代码名: " + navigator.appCodeName + "/p";txt+= "p浏览器名称: " + navigator.appName + "/p"; txt+= "p浏览器平台和版本: " + navigator.appVersion + "/p";txt+= "p是否开启cookie
小编也是刚开始学JavaScript,觉得淘宝评星效果很棒,于是产生了自己写一个的想法,先给大家分享一下实现效果: 现附上自己写的源代码 !DOCTYPE htmlhtml lang="en"head meta charset="UTF-8" script language="JavaScript" type="text/javascript" function star(n) { var array=new Array(); array[0]=document.getElementById("oneSt
8中javascript创建对象(类)的方法,依依介绍给大家,希望大家喜欢。 1. 使用Object构造函数来创建一个对象 下面代码创建了一个person对象,并用两种方式打印出了Name的属性值。 var person = new Object(); person.name="kevin"; person.age=31; alert(person.name); alert(person["name"]) 上述写法的另外一种表现形式是使用对象字面量创建一个对象,不要奇怪person[“5”],这里是合法的
最近都在学习HTML5,做canvas游戏之类的,发现HTML5中除了canvas这个强大的工具外,还有WebSocket也很值得注意。可以用来做双屏互动游戏,何为双屏互动游戏?就是通过移动端设备来控制PC端网页游戏。这样的话就要用到实时通讯了,而WebSocket无疑是最合适的。WebSocket相较于HTTP来说,有很多的优点,主要表现在WebSocket只建立一个TCP连接,可以主动推送数据到客户端,而且还有更轻量级的协议头,减少数据传送量。所以WebSocket暂时来说是实时通讯的最佳协议了。 至
jQuery实现带玻璃流光质感的手风琴特效是一款基于jQuery+CSS3实现的带玻璃流光质感的手风琴特效,分享给大家,具体如下 效果图: 具体代码如下: html代码: section class="strips" article class="strips__strip" div class="strip__content" h1 class="strip__title" data-name="Lorem"Awesome/h1 /div /article article class="strips__
如何获取浏览器信息 Window有navigator对象让我们得知浏览器的全部信息.我们可以利用一系列的API函数得知浏览器的信息. JavaScript代码如下: 复制代码 代码如下: function message(){ txt = "p浏览器代码名: " + navigator.appCodeName + "/p"; txt+= "p浏览器名称: " + navigator.appName + "/p"; txt+= "p浏览器平台和版本: " + navigator.appVersion + "
虽然ES6都还没真正发布,但已经有用ES6重写的程序了,各种关于ES789的提议已经开始了,这你敢信。潮流不是我等大众所能追赶的。 潮流虽然太快,但我们不停下学习的步伐,就不会被潮流丢下的,下面来领略下ES6中新特性,一堵新生代JS的风采。 箭头操作符 如果你会C#或者Java,你肯定知道lambda表达式,ES6中新增的箭头操作符=便有异曲同工之妙。它简化了函数的书写。操作符左边为输入的参数,而右边则是进行的操作以及返回的值Inputs=outputs。 我们知道在JS中回调是经常的事,而一般回调又以匿

12个常用的js正则表达式 - 2015-11-21 14:11:04

在这篇文章里,我已经编写了12个超有用的正则表达式,这可是WEB开发人员的最爱哦。 1.在input框中只能输入金额,其实就是只能输入最多有两位小数的数字 //第一种在input输入框限制 input type="text" maxlength="8" class="form-control" id="amount" value="" onChange="count();" onkeyup="if (this.value==this.value2) return; if (this.value.searc
先来看这行代码: script src = "allMyClientSideCode.js"/script 这有点儿……不怎么样。“这该放在哪儿?”开发人员会奇怪,“靠上点,放到head标签里?还是靠下点,放到body标签里?”这两种做法都会让富脚本站点的下场很凄惨。head标签里的大脚本会滞压所有页面渲染工作,使得用户在脚本加载完毕之前一直处于“白屏死机”状态。而body标签末尾的大脚本只会让用户看到毫无生命力的静态页面,原本应该进行客户端渲染的地方却散布着不起作用 的控件和空空如也的方框。 完美解决这

详解JavaScript的回调函数 - 2015-11-21 14:11:04

本文的目录: 什么是回调或高级函数 回调函数是如何实现的 实现回调函数的基本原则 回调地狱的问题和解决方案 实现自己的回调函数 在JavaScrip中,function是内置的类对象,也就是说它是一种类型的对象,可以和其它String、Array、Number、Object类的对象一样用于内置对象的管理。因为function实际上是一种对象,它可以“存储在变量中,通过参数传递给(别一个)函数(function),在函数内部创建,从函数中返回结果值”。 因为function是内置对象,我们可以将它作为参数传