Specify only the second parameter in a javascript function
The spec for the jQuery ajax.error
function is:
error(XMLHttpRequest, textStatus, errorThrown)Function
I'm trying to catch the error and display the textStatus
, but I can't figure out how to specify only the textStatus
without having to put in a variable name for XMLHttpRequest
and errorThrown
. My code currently looks like this:
$.ajax({
开发者_如何学JAVA 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);
}
});
You can see in my code that I'm putting variables a
and b
as placeholders for the first and last variables in the error
function. I know that in my success function, I'm only providing one parameter and it works fine, but in that case data
is the first parameter. In the case of error
, textStatus
is the second parameter, but that's the only one I want to specify. Is this possible?
After programming in Erlang for a while, I started using "_" as the name of a variable that I don't care about. It's just a convention like anything else but it clarifies situations like that for me. Javascript seems to be OK with using "_" for more than one parameter, I think.
If you really want to, you can use the arguments
array:
error: function () {
var textStatus = arguments[1]; //Zero-based
$("#txtAjaxError").val("There was an error in the AJAX call: "
+ textStatus);
}
However, it's a horrible idea; you should simply add an unsused parameter.
No. The closest that you can get is:
error: function (a,textStatus) {
$("#txtAjaxError").val("There was an error in the AJAX call: "
+ textStatus);
}
Only the last parameters can be omitted
精彩评论