如何将Ajax错误结果与原始请求相关联?
我使用jQuery ajax函数以小突发发送数据到服务器.每个数据块都是一个简单的键值映射(传递给ajax函数的data属性).
如果请求失败,我的错误事件处理程序如何识别哪些特定数据集无法上载? jQuery错误处理程序的函数签名是: error(XMLHttpRequest,textStatus,errorThrown) textStatus或errorThrown似乎都不能用于识别失败的数据集,而XHR似乎也没有提供这种能力. 简单地说,如果请求失败,我希望能够获取传递给ajax函数的数据的id属性.我怎样才能做到这一点? 解决方法
检查
this …从文档中 – 注意突出显示的部分:
因此,在error()回调(也是成功和完成等)中,这将是传递给$.ajax()的对象 – 除非您使用context参数来更改它. 注意,传入$.ajax()的数据参数将转换为GET或POST请求的序列化字符串 另一个选择是确保你的error()回调可以访问同一范围内的变量: (function() { // create a scope for us to store the data: var data = {id: 1}; $.ajax({ url: '/something-to-genereate-error',data: data,error: function() { console.log(this,data); } }); })(); // call the function immediatey See this fiddle for an example – 请注意,其中的数据是“id = 1”,因为我们持有的数据仍为{id:1} 另外 – 注意这里的闭包((function(){….})())几乎没必要,它只是显示了一种方法来存储数据变量,然后将它传递到$.ajax()和使用它在回调中.很可能这个ajax调用已经存在于你可以做到这一点的函数中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |