Javascript 访问post请求';s success/complete/error函数中的参数数据
我有一堆jQueryAjax post请求,它们被封装在Javascript 访问post请求';s success/complete/error函数中的参数数据,javascript,ajax,jquery,Javascript,Ajax,Jquery,我有一堆jQueryAjax post请求,它们被封装在for循环中。每个请求都提供不同的参数。我的问题是,如果请求失败,您如何判断该请求传递了哪些参数数据 当我尝试时: for(i = 0; i < toSubmit.length; i++) { $.post('doSomething.php', {id: toSubmit[i]}, function(data) { /* Do something here */ }, 'jso
for
循环中。每个请求都提供不同的参数。我的问题是,如果请求失败,您如何判断该请求传递了哪些参数数据
当我尝试时:
for(i = 0; i < toSubmit.length; i++) {
$.post('doSomething.php',
{id: toSubmit[i]},
function(data) { /* Do something here */ },
'json')
.error(function() {
console.log(toSubmit[i] + " didn't work!");
});
}
for(i=0;i
“error
函数将只输出toSubmit
中的最后一个值,因为i
指针一直在for
循环中前进,而请求是异步触发的。”。在success
和complete
功能中也会发生同样的情况;我解决这个问题的方法是确保返回的JSON包含相应的id
;但是如果请求失败,我将无法使用此解决方法
我有没有办法获取这些信息,或者有没有更好的方法来触发这些请求?看来您必须为方法调用设置正确的上下文。您可以研究jQuery proxy()方法,该方法允许您为回调提供正确的上下文 试着这样做:
for(i = 0; i < toSubmit.length; i++) {
var ctx = {id: i};
$.post('doSomething.php',
{id: toSubmit[i]},
function(data) { /* Do something here */ },
'json')
.error( $.proxy(function() {
console.log(this.id + " didn't work!");
}, ctx) );
}
for(i=0;i
试试这个:
beforeSend:function(jqXHR, settings){
jqXHR.parameters = { /* data or parameters store here*/}
}
error: function(jqXHR, textStatus, errorThrown){
var params = jqXHR.parameters
}