如何将成功函数名称作为函数参数传递给 AJAX 调用?

在这里,我试图将 AJAX 调用作为单个函数进行,为此我将成功函数名称作为函数参数传递给 AJAX 调用函数。


我尝试编写以下函数:


function ApiCallFunction(Datatext, ApiName, FunctionName) {

  $.ajax({

    url: Apiurl + ApiName,

    type: "POST",

    data: Datatext,

    contentType: "application/json",

    dataType: "json",

    success: function(data) {

      var funname = FunctionName + '("' + data + '")';

      eval(funname);

    },

    error: function(error) {

      jsonValue = jQuery.parseJSON(error.responseText);

      ErrorWhileSave(jsonValue.Message);

    },

    failure: function(response) {

      ErrorWhileSave("");

    }

  });

}

函数调用:


var datatext = {

  BillChild: {},

  BillDate: "2018-07-23T08:35:32.319Z",

  EntryTime: "2018-07-23T08:35:32.319Z",

  ExitTime: "2018-07-23T08:35:32.319Z",

  TotalTime: "2018-07-23T08:35:32.319Z",

  Total: 0,

  OtherCharges: 0,

  Discount: 0,

  TaxableAmount: 0,

  TotalTax: 0,

  GrandTotal: 0,

  RoundOff: 0,

  NetAmount: 0,

  ByCash: 0,

  ByBank: 0,

  CashReceived: 0,

  BalanceReceivable: 0,

  FirmId: 0,

  UserId: 0,

  BillId: 35,

  CustomerId: 0,

  BranchId: 0,

  BillType: "string",

  BillNo: "string",

  PaymentType: "string",

  Notes: "string",

  TaxType: "string",

  BankId: "string",

  CreatedBy: "string",

  HostIp: "string",

  BranchTransfer: "string",

  ConsultId: 0,

  SearchKey: "string",

  Flag: "SELECTONE"

};


var Datatext = (JSON.stringify(datatext));

ApiCallFunction(Datatext, "Bill_master", "ReturnFunction");

我尝试使用的 Success 函数是:


function ReturnFunction(ReturnValue) {

  alert(data.data.Table1[0].BillId);

}

当我尝试时,alert(ReturnValue)它显示为object object. 我也试过ReturnValue.data.data.Table1[0].BillId仍然无法使用这些值。AJAX 调用成功,我从中获得了价值,但我无法将结果 JSON 对象传递给其他函数。


如何将 JSON 对象传递给其他函数?请帮我。


开心每一天1111
浏览 148回答 1
1回答

largeQ

您可以通过不同的方式实现您的目标。方法一简单地将函数对象作为参数赋值function ApiCallFunction(Datatext, ApiName, onSucess,onError) {    $.ajax({        url: Apiurl + ApiName,        type: "POST",        data: Datatext,        contentType: "application/json",        dataType: "json",        success: onSucess,        error: onError,        failure: function (response) {            ErrorWhileSave("");        }    });}并具有以下功能的实现:function ReturnFunction(response){ //assuming that response is of JSON type alert(response.data.Table1[0].BillId);}function myError(response){ console.log(JSON.parse(response.responseText).Message);}调用:ApiCallFunction(DataText,"Bill_master",ReturnFunction,myError);方法2如果你碰巧有一个字符串而不是函数对象function ApiCallFunction(Datatext, ApiName, FunctionName) {    $.ajax({        url: Apiurl + ApiName,        type: "POST",        data: Datatext,        contentType: "application/json",        dataType: "json",        success: function (data) {             window[FunctionName].apply(this,data);        },        error: function (error) {            jsonValue = jQuery.parseJSON(error.responseText);            ErrorWhileSave(jsonValue.Message);        },        failure: function (response) {            ErrorWhileSave("");        }    });}调用:ApiCallFunction(DataText,"Bill_master","ReturnFunction");
打开App,查看更多内容
随时随地看视频慕课网APP