Javascript jquery模块化ajax调用

Javascript jquery模块化ajax调用,javascript,jquery,ajax,Javascript,Jquery,Ajax,有人能解释一下吗,我有多个GETajax调用,只有几行代码,但我基本上在每个函数上重复$.ajax({}) 我可以用一个$.ajax({})函数代替它,并在函数上使用它,这样我就不必每次都重复$.ajax({}) 也许是这样,但我肯定这是不对的,但这只是一个概念 function ajaxCall(url, method) { $.ajax({ url: url, method: method, success: function(){ } // however this s

有人能解释一下吗,我有多个
GET
ajax调用,只有几行代码,但我基本上在每个函数上重复
$.ajax({})

我可以用一个
$.ajax({})
函数代替它,并在函数上使用它,这样我就不必每次都重复
$.ajax({})

也许是这样,但我肯定这是不对的,但这只是一个概念

function ajaxCall(url, method) {
 $.ajax({
   url: url,
   method: method,
   success: function(){ } // however this should come in the below function
 })
}

function firstCall() {
 var url = 'www.urlsample.com';
 var methodType = 'GET'
 ajaxCall(url, methodType).success() // get the data from this function?

}
这有可能吗?这是为了避免对每个函数重复ajax调用

jQuery的
.ajax()
方法返回承诺包装器

function ajaxCall(url, method) {
 // return promise
 return $.ajax({
   url: url,
   method: method
 });
}

function firstCall() {
 var url = 'www.urlsample.com';
 var methodType = 'GET'
 ajaxCall(url, methodType).then(function( result ) { 
     // success handler
 }, function( error ) {
     // error handler
 });
}
jQuery的
.ajax()
方法返回承诺包装器

function ajaxCall(url, method) {
 // return promise
 return $.ajax({
   url: url,
   method: method
 });
}

function firstCall() {
 var url = 'www.urlsample.com';
 var methodType = 'GET'
 ajaxCall(url, methodType).then(function( result ) { 
     // success handler
 }, function( error ) {
     // error handler
 });
}

您可以这样做,但您所做的只是包装
$.ajax
,因此它非常冗余。有更好的解决方案吗?没有。与直接调用
$.ajax
相比,您所遵循的模式没有任何好处。如果您想为所有AJAX请求研究设置默认选项,
$.ajaxSetup()
,您可以这样做,但您所做的只是包装
$.AJAX
,因此它非常冗余。有更好的解决方案吗?没有。与直接调用
$.ajax
相比,您所遵循的模式没有任何好处。如果要为所有AJAX请求研究设置默认选项,
$.ajaxSetup()
如果调用失败,如何在
firstCall
中添加错误处理程序?我刚刚编辑了
的答案。then()
同时处理成功和错误处理程序。IIRC jQuery的承诺包装器还提供了处理拒绝承诺的
.fail()
方法。如果调用失败,如何在
firstCall
中添加错误处理程序?我刚刚编辑了
.then()
的答案,它同时处理成功和错误处理程序。IIRC jQuery的承诺包装器还提供了处理拒绝承诺的
.fail()
方法。