2010-05-12 48 views
2

The spec for the jQuery ajax.error function仅指定第二个参数是:在JavaScript功能

error(XMLHttpRequest, textStatus, errorThrown)Function 

我试图捕获错误并显示textStatus,但我无法弄清楚如何,而不必仅指定textStatus输入XMLHttpRequesterrorThrown的变量名称。我的代码目前看起来是这样的:

$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: hbAddressValidation.webServiceUrl, 
    data: this.jsonRequest, 
    dataType: "json", 
    timeout: 5, 
    success: function (msgd) { 
     //... 
    }, 
    error: function (a,textStatus,b) { 
     $("#txtAjaxError").val("There was an error in the AJAX call: " 
           + textStatus); 
    } 
}); 

你可以在我的代码,我把变量ab用作占位符在error功能的第一和最后一个变量看。我知道在我的成功功能中,我只提供了一个参数,它工作正常,但在这种情况下,data是第一个参数。在error的情况下,textStatus第二个参数,但这是我想指定的唯一一个。这可能吗?

回答

1

号,你可以得到的最接近的是:

error: function (a,textStatus) { 
    $("#txtAjaxError").val("There was an error in the AJAX call: " 
          + textStatus); 
} 

只有最后的参数可以省略

2

如果你真的想,你可以使用arguments阵列:

error: function() { 
    var textStatus = arguments[1]; //Zero-based 
    $("#txtAjaxError").val("There was an error in the AJAX call: " 
          + textStatus); 
} 

然而,这是一个可怕的想法;你应该简单地添加一个未使用的参数。

+1

我同意“可怕的想法”部分:-) – Pointy 2010-05-12 20:32:20

4

在Erlang编程一段时间后,我开始使用“_”作为我不关心的变量的名称。这只是一个像其他任何事情一样的约定,但它为我澄清了这样的情况。我认为Javascript似乎可以使用“_”作为多个参数。