无法将功能绑定到ajax请求

时间:2018-12-20 14:03:56

标签: javascript ajax

我正在尝试将功能ajaxFailureHandler附加到ajax请求:

 $.ajax({
    url: GlobalVariables.baseUrl + '/dashboard_api/ajax_save_user',
    dataType: 'text',
    cache: false,
    contentType: false,
    processData: false,
    data: form_data,
    type: 'post',
    success: function (response) {

      alert(true);
    }.bind(this),
    error: function (response) {
        alert(false);
    }
}.bind(this), 'json').fail(GeneralFunctions.ajaxFailureHandler);

但是我实际上得到了这个错误:

  

未捕获的TypeError:{(中间值)(中间值)(中间值)(中间值)(中间值)(中间值)(中间值)(中间值)(中间值)}。bind不是函数

该如何解决?

2 个答案:

答案 0 :(得分:1)

已将要传递的设置对象绑定到$ .ajax()。我认为您可能打算绑定这样的错误功能:

<select id="inputSelectReason" class="form-control" formControlName="selectReason">
    <option value="" disabled selected hidden>Select Your Reason</option>
    <option *ngFor="let code of dropdownListCodes?.codes" [value]="code.codeValue">{{code.codeDescTxt}}</option>
</select>

答案 1 :(得分:0)

您可以使用context选项在所有回调中更改this

如果使用error,则不需要.fail()

如果期望json响应,请设置dataType:'json'

$.ajax({

    context: this,// binds `this` in success and fail callbacks
    dataType: 'json',    

    url: GlobalVariables.baseUrl + '/dashboard_api/ajax_save_user',
    cache: false,
    contentType: false,
    processData: false,
    data: form_data,
    type: 'post',
    success: function (response) {
      alert(true);
    }
}).fail(GeneralFunctions.ajaxFailureHandler);