javascript - 重用相同的 AJAX 调用

标签 javascript jquery ajax callback

我有几个非常相似的 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)

我想知道这是一个好主意还是常见做法,或者是否有更简单的方法来实现这一点?

最佳答案

我会以 Promise 的方式来做:

 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/

相关文章:

javascript - 当内部元素滚动位置到达顶部/底部时防止滚动父元素?

javascript - 不要将对象中的项目附加到 html

javascript - 使用 $(this) 的 JQuery/JavaScript 性能

javascript - 从 Controller 创建 json 响应

javascript - 将 Ajax 与 JQuery .on() 结合使用

javascript - Laravel 5.2 - Sweet Alert 确认框

javascript - 在 javascript 自定义函数中添加默认值

javascript - 我可以在 svg 文件上绘制形状吗

jquery - 如果我过早将鼠标移动到子菜单,Firefox 上的 CSS 动画就会结束

java - PrimeFaces:我需要哪个 ajax 事件?