2012-09-24 54 views
1

我有很多jquery ajax请求,用一个函数发送。如何取回jquery ajax请求发送的xhr错误数据?

function sendData(data){ 
    $.post("somepage", {"data": data}, function() {}, "json") 
    .fail(function(jqXHR, textStatus, errorThrown){ 
     sendData(***previuoslySentData***); 
    }); 
} 
sendData(1); 
sendData(2); 
sendData(3); 
... 

,你可以看到,当一个请求失败我希望能够与以前发送数据再次发送请求。
我该如何找回有关xhr错误的数据?
我认为它应该在xhr,但我找不到任何东西。
我也对这个问题的任何其他解决方案感兴趣。

+1

传递给函数的'data'参数是否仍然可用?所以:'sendData(data);'? –

回答

2

你用自己的函数包装了你的AJAX请求的方式,你正在有效地创建一个新的闭包,这意味着你接受的作为输入参数的data变量将仍然可用于你的.fail回调。

+0

@Thomas和Hedlund,哦!我从来没有想过它可以这样工作,有趣!并感谢你们:) – Drust

+1

@Drust:阅读JavaScript中的闭包。如果你了解他们,他们会很棒,如果你不知道他们会咬你。 –