2017-11-03 10 views
1

私は非常に似ているが、異なる点で応答とは異なることをすることになっているURLにいくつかの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); 
} 

:だからではなく、新しいAJAX呼び出し、私はそれを必要とするたびに書き込むので、私は、パラメータを持つ関数としてAJAX呼び出しを再利用しようとしていますこのように:

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

これは良いアイデアか一般的な練習か、これを達成するためのより簡単な方法があるのだろうか?

答えて

1

私は約束の方法でそれを行うだろう:

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); 
1

あなたは、応答の変化で何をやっている場合は、その約束することができます:今

function createAjaxObj(type,name,id,successFunc){ 
    return $.ajax({ 
    url: MY_URL, 
    type: type, 
    data: { 
     name: name, 
     id: id 
    } 
    }) 
} 

あなたはそうのようにそれを実行することができます。

createAjaxObj('foo', 'bar', 1) 
    .then(function(data) { // do something with data }) 
    .error(function(err) { // do something with error }) 

私はそれがために働くべきだと思います君は。そうでない場合は、私はそれのためのフィドルを作成します。

関連する問題