2017-06-24 16 views
0

てパラメータを渡す:成功しは、私は、AJAX機能持っているAjaxの成功機能

function abc(url){  
$.ajax({ 
       url:'/account/search', 
       type:'GET', 
       success:update(url), 
       error:function(error){ 
        console.log(error); 
       } 
      }); 
} 

を更新するための関数呼び出しがあります:

function update(response,url){ 
      list = response.data; 
      var i=0; 
      var q = list.length; 
} 

しかし、それはエラーがスローされます。は、プロパティを読み取ることができません。定義されていない '長さ'はコンソールのです。

として更新機能は、すでにパラメータ応答で来る別のファイルからのデータを受信して​​いるので、私はそれを削除することはできません。

パラメータ(この例では「url」)をAJAX呼び出しからの更新関数に正しく渡す方法を提案してください。

おかげ

+0

はあなたが一つだけを渡しているにconsole.log(リスト)とはconsole.log(レスポンス) – HoangHieu

+0

を印刷してもらえ成功に任意のパラメータを渡してはいけません試してみてくださいあなたの成功関数でupdateを呼び出すと、url。私はそれがデータを持たない文字列であると仮定しているので、コード内のリストは実際にurl.dataと等しくなります。リストには長さがありません。新しい変数の中の別の関数からの応答を使用することはできません。その変数は最初の関数にスコープされています。 –

答えて

4

あなたは別の関数が必要になります。 successコールバック自体はただ1つのパラメータAJAX応答を受信しました。 2番目のものが必要な場合は、その間に関数呼び出しが必要です。

function abc(url){  
    $.ajax({ 
       url:'/account/search', 
       type:'GET', 
       success: function(data){ update(data, url); }, 
       error:function(error){ 
        console.log(error); 
       } 
      }); 
} 
+0

周囲のオブジェクトから 'url'プロパティを引き出し、それを渡すことができますか? – James

+0

@Jamesこれは 'abc()'の 'url'パラメータを受け取り、それをyesに渡します。あなたのエラーbtwはおそらくこれに関連していません。 – Sirko

+0

私はもっとコーヒーが必要です、私はラッピングabc機能を見つけませんでした。 – James

2

この

function abc(url) 
{  
    $.ajax({ 
       url:'/account/search', 
       type:'GET', 
       success: update, 
       error:function(error){ 
        console.log(error); 
       } 
      }); 
} 



function update(data){ 
      console.log(data) 
      var q = data.length; 
} 
+0

それは以下の形式のリストを提供しています:[object Object] – ssharma

関連する問題