jQuery 中 $.ajax 的 complete 和 success 有什么区别?

franksinger 2008-03-18 05:15:55
jQuery 中 $.ajax 的 complete 和 success 有什么区别?
...全文
15653 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuqinqin 2008-04-30
  • 打赏
  • 举报
回复
complete 只是完成了请求与响应
success 是指服务器返回的不是出错的信息
比如403
比如500
orange_morning 2008-04-30
  • 打赏
  • 举报
回复
success 只是在200 的情况下
UltraBejing 2008-04-30
  • 打赏
  • 举报
回复
关注 接分
meiZiNick 2008-04-30
  • 打赏
  • 举报
回复
接分是王道!
franksinger 2008-03-19
  • 打赏
  • 举报
回复
如果使用success,正常返回的responseText是否肯定有值?
我需要使用循环请求,发现由于网速或其他问题,循环次数过多,则导致responseText没有取到。如何能解决???

谢谢!
xingchenbbs 2008-03-19
  • 打赏
  • 举报
回复
星辰技术社区:www.netcsharp.cn,我们将帮您以最快的速度找到最佳的解决方案
tantaiyizu 2008-03-18
  • 打赏
  • 举报
回复
其实你看字面意思都可以想象出来的 。。。
iuhxq 2008-03-18
  • 打赏
  • 举报
回复
complete 是返回404,403,302什么的都算


success 仅仅是200


其实看看底层代码就清楚了
tantaiyizu 2008-03-18
  • 打赏
  • 举报
回复
Function) success - 当请求成功时调用的函数。这个函数会得到一个参数:从服务器返回的数据(根据“dataType”进行了格式化)。

Function) complete - 当请求完成时调用的函数。这个函数会得到两个参数:XMLHttpRequest对象和一个描述请求成功的类型的字符串。
jQuery.ajax( url, [ settings ] ) 返回: jqXHR 执行一个异步的HTTP(Ajax)的请求。 version added: 1.5jQuery.ajax( url, [ settings ] ) url一个用来包含发送请求的URL字符串。 settings一个以"{键:值}"组成的AJAX 请求设置。所有选项都是可选的。可以使用$.ajaxSetup()设置任何默认参数。看jQuery.ajax( settings )下所有设置的完整列表。 version added: 1.0jQuery.ajax( settings ) settings一个以"{键:值}"组成的AJAX 请求设置。所有选项都是可选的。可以使用$.ajaxSetup()设置任何默认参数。 acceptsMap 默认: 取决于数据类型 内容类型发送请求头,告诉服务器什么样的响应会接受返回。如果accepts设置需要修改,推荐在$.ajaxSetup()方法做一次。 asyncBoolean 默认: true 默认设置下,所有请求均为异步请求(也就是说这是默认设置为true)。如果需要发送同步请求,请将此选项设置为 false。跨域请求和dataType: "jsonp"请求不支持同步操作。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。 beforeSend(jqXHR, settings)Function 发送请求前可修改 jqXHR(在jQuery 1.4.x的,XMLHttpRequest) 对象的函数,如添加自定义 HTTP 头等。该jqXHR和设置作为参数传递的。这是一个Ajax事件 。beforeSend行数返回的false将取消该请求。在jQuery 1.5, beforeSend选项将被访问,不管请求的类型。 cacheBoolean 默认: true, dataType为"script"和"jsonp"时默认为false 如果设置为 false ,浏览器将不缓存此页面。 complete(jqXHR, textStatus)Function, Array 请求完成后回调函数 (请求成功或失败之后均调用)。这个回调函数得到2个参数: jqXHR (in jQuery 1.4.x, XMLHTTPRequest) 对象和一个描述成功请求类型的字符串("success", "notmodified", "error","timeout", or "parsererror") 。在jQuery 1.5, complete设置可以接受一个函数的数组。每个函数将被依次调用。这是一个Ajax事件 。 contents(added 1.5)Map 一个以"{字符串:正则表达式}"配对的对象,用来确定jQuery将如何解析响应,给定其内容类型。 contentTypeString 默认: 'application/x-www-form-urlencoded' 发送信息至服务器时内容编码类型。默认值是"application/x-www-form-urlencoded",适合大多数情况。如果你明确地传递了一个content-type给 $.ajax() 那么他必定会发送给服务器(即使没有数据要发送)。数据将总是使用UTF-8字符集传递给服务器;你必须译码这适当的在服务器端。 contextObject 这个对象用于设置Ajax相关回调函数的上下文。也就是说,让回调函数内this指向这个对象(如果不设定这个参数,那么this就指向调用本次AJAX请求时传递的options参数)。比如指定一个DOM元素作为context参数,这样就设置了success回调函数的上下文为这个DOM元素。就像这样: $.ajax({ url: "test.html", context: document.body, success: function(){ $(this).addClass("done"); } });

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧