- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用:
var jqXHR = $.ajax(settings);
jqXHR.success(function(result){});
jqXHR.error(function(result){});
jqXHR.complete(function(result){});
但是1.5版本添加了延迟对象。
问:一般来说,您什么时候使用 success、error 和complete 方法,而不使用新热度的 deferred then、done 和 failed 方法?
最佳答案
对于 $.ajax()
和系列 .success
只是 Deferred 的 .done
的同义词,同样 .error
是 .fail
的同义词。
事实上,您展示的示例已经是延迟方法,但名称不同。
.complete
是新 jQuery 1.6 .always
的同义词,您可以使用 $ 获得相同的效果.then(cb, cb)
,无论 AJAX 调用是否成功,都会调用 cb
。我相信 .complete
、.always
和 $.then
变体之间传递给“失败”回调的参数存在细微差别.
我个人更喜欢使用这些命名函数的延迟版本,因为这样你就不需要担心你的延迟对象是否是jqXHR。只有 jqXHRs
具有 .success
、.error
和 .complete
,但每个延迟(包括 jqXHRs)有 .done
、.fail
和 .always
。
编辑 看来 jQuery 开发者同意我的观点 - 他们已经 announced .success
、.error
和 .complete
将在 jQuery 1.8 中弃用
关于jQuery 延迟与 jqXHR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6285407/
我使用: var jqXHR = $.ajax(settings); jqXHR.success(function(result){}); jqXHR.error(function(result){}
我将 jquery ajax 对象存储在一个数组中,这样我就可以根据用户触发的事件手动取消调用(如果它没有返回)。这些是我希望运行很长时间的 ajax 调用。 JavaScript var ajaxC
正如标题已经提到的,有没有办法检查一个变量是否是真正的 jqXHR? 我的意思是(虚构的): var resource = $.get('/resource'); if (resource insta
我最近在 jQuery 网站上看到了弃用通知。 Deprecation Notice: The jqXHR.success(), jqXHR.error(), and jqXHR.complete()
我正在尝试为 jquery 文件上传执行取消按钮(http://blueimp.github.io/jQuery-File-Upload/)。 我的代码: var jqXHR = $('#fileup
我正在创建一个 ajax 实用程序来与我的服务器方法交互。我想利用 jQuery.ajax() 调用返回的对象的 jQuery 1.5+ 延迟方法。情况如下。 服务器端方法始终返回 JSON 对象:
我是 AJAX/Jquery 的新手,并且在我的程序上创建了错误响应,但我遇到了错误如何出现的问题,主要是 jqXHR.responseText。 error: function(jqXHR, tex
对于我的 jQuery 应用程序,我想实现延迟加载。因此,我创建了一个对象,其中包含我所有的 jqXHR promise 。 当我现在将所有内容分组到一个声明中时 var resultset = ne
在我的服务器上(用 Go 编写),我发回了一个自定义 header 字段,当我进行 ajax 调用时我试图从中读取该字段。 $.ajax({ url: url, suc
我正在使用 Backbone 开发一个新应用程序,但尚未编写后端 API,因此我正在尝试使用项目本地的 JSON 数据文件。我将其位置设置为 urlRoot,并且能够获取它并接收回 jqXHR 对象。
jqXHR.status 的可能值是什么? 到目前为止,我可以看到以下内容: if (jqXHR.status === 0) { msg = 'Network Problem'; } else if
在我的 ajax 调用中,responseHeader('Location') FF 始终为空。有谁能够帮助我?顺便说一下,它是一个 CORS。 $.ajax({ ur
我有一个可以引发异常的 Java Spring MVC Controller 。我有一个 @ExceptionHandler 设置来处理这些错误,我想用它来将异常的消息返回给调用者。 服务器代码是:
在 jQuery.ajax() 调用 jqXHR.getAllResponseHeaders() 后,不会返回所有 header 。服务器响应以下 header : Connection: keep-
来自deferred.fail() page : Description: Add handlers to be called when the Deferred object is rejected
我正在使用 JQuery 的 $.when 和 $.get 来获取一些数据并对其执行某些操作。当获取它或对其执行某些操作时出现错误时,我想处理该错误,并根据我正在获取的数据/在哪个路径上获取它,以不同
基本上我使用 jqXHR 和 asmx。如果可能的话我想这样做; 总的来说,在每个页面中,我都会使用 6-7 个带有同步或异步的 ajax 调用,具体取决于它是哪种方法。但是当其中一个出现错误时,我想
我正在尝试使用 jquery 提交登录表单(这是一个弹出式 div)。如果表单验证失败,那么我只想在弹出 div 上显示错误消息,并在 ajax 调用进入错误函数时停止关闭该表单(弹出窗口),因为页面
我有以下 Ajax 调用: $.ajax({ type: 'POST', contentType: 'application/json', url: r
我有 SendRequest 对象,该类具有类似的功能 request: function(args) { return $.ajax.apply
我是一名优秀的程序员,十分优秀!