我有一些对URL的ajax请求,它们非常相似,但是应该在不同点响应不同。因此,我没有在需要时编写新的ajax调用,而是尝试将ajax调用作为具有参数的函数重用:

function createAjaxObj(type,name,id,successFunc){
    var config = {
        url: MY_URL,
        type: type,
        data: {
            name : name,
            id : id,
        },
        headers: { "X-CSRFToken": returnCsrfToken(); },
        success: successFunc,
        error: function(xhr,ajaxOptions, thrownError) { console.log('error=',xhr);},
    };
    $.ajax(config);
}


所以现在,我打算每次需要时都调用此函数:

var myFunc = function(context){console.log(context)}
createAjaxObj("GET","MyName",58,myFunc)


我想知道这是否是个好主意或惯例,还是有更简单的方法来实现?

最佳答案

我会以无极的方式做到这一点:

 function myAjax(type, name, id) {
    return $.ajax({
      url: MY_URL,
      type: type,
      data: {
        name : name,
        id : id,
      },
      headers: { "X-CSRFToken": returnCsrfToken(); })
    })
    .fail(function(){
      console.log('error');
    });
  }

  var myFunc = function(context){ console.log(context); };
  myAjax("GET", "MyName", 58).then(myFunc);

关于javascript - 重用相同的AJAX调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47105927/

10-12 00:07
查看更多