代码之家  ›  专栏  ›  技术社区  ›  Ben McCormack

仅指定javascript函数中的第二个参数

  •  2
  • Ben McCormack  · 技术社区  · 15 年前

    The spec for the jQuery ajax.error function 是:

    error(XMLHttpRequest, textStatus, errorThrown)Function
    

    我正在尝试捕获错误并显示 textStatus 但是我不知道如何只指定 文本状态 无需输入变量名 XMLHttpRequest errorThrown . 我的代码当前如下:

    $.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);
        }
    });
    

    您可以在我的代码中看到我正在放入变量 a b 作为第一个和最后一个变量的占位符 error 功能。我知道在我的成功函数中,我只提供了一个参数,它可以正常工作,但是在这种情况下 data 是第一个参数。在情况下 错误 , 文本状态 第二 参数,但这是我唯一要指定的参数。这有可能吗?

    3 回复  |  直到 15 年前
        1
  •  1
  •   Eric    15 年前

    不,最近的是:

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

    只能省略最后一个参数

        2
  •  4
  •   Pointy    15 年前

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

        3
  •  2
  •   SLaks    15 年前

    如果你真的想,你可以使用 arguments 数组:

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

    然而,这是一个可怕的想法;您应该简单地添加一个未经确认的参数。