如何判断哪个ajax请求失败
How to tell which ajax request failed?
我有这个代码块来通过jquery.post()方法发布HTTP请求。
$.post("/product/update", formPostData)
.done(function (data) {
// success
alert(data.product_id + ' was updated!');
})
.fail(function (data) {
// fail, but which request?
});
当它成功时,很容易知道我们正在处理哪个请求,因为服务器返回的json具有我需要的'product_id'
。
但是,如果它由于服务器没有响应的错误而失败,例如连接问题,我如何判断哪个请求失败了?
data
对象没有线索,因为它只包含服务器响应。
如何将值传递给.fail()
处理程序,以便确定哪个请求失败?
this
对象在这里很有用。你应该能够解析this.data
并从那里获得你的帖子信息:
.fail(function (jqXHR, textStatus, errorThrown) {
console.log(this.data);
});
另一种选择是写入XHR对象本身,然后它在fail
方法中为您提供,不需要使用闭包:
var obj = { a: 1 };
var xhr = $.post("/product/update", obj)
.done(function (data) {})
.fail(function (jqXHR, textStatus, errorThrown) {
console.log(this.data); // The raw string a=1 which was posted
console.log(jqXHR.postData); // The {a: 1} javascript object
});
xhr.postData = obj;
相关文章:
- ajax请求的顺序总是不同的
- 从ajax请求中获取javascript对象
- Ajax请求文档就绪会导致jquery加载缓慢
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- JavaScript代码未正确检查ajax请求
- "日期“;AJAX请求返回的类型值未定义
- 在等待ajax请求时显示微调器并禁用页面
- 跨域ajax请求
- Ajax请求返回空的数据字符串,但首先得到了正确的数据
- Javascript-如何让脚本与Ajax请求的数据一起运行
- ajax请求成功,但可以'我看不到我的数据
- 如何将给定的curl命令复制为jquery ajax请求
- 为什么我能够从javascript控制台发送跨域ajax请求
- 一台特定计算机的Ajax请求数据未定义/失败
- 获取ajax请求的请求头
- 原型Ajax请求参数为嵌套json
- 可以't从AJAX请求中筛选数据
- jQuery Mobile Collapse上的AJAX请求
- 暂停函数执行流程,直到ajax请求完成