2016-03-23 70 views
1

我想從一個JSON調用得到一個ID,並不確定是什麼問題。我有一個回調函數設置爲設置一個全局變量。結果從一個JSON調用變量

目標:撥打電話給數據庫,從返回的結果中獲取ID。

步驟1 - 請呼叫JSON和解析結果

callAjaxGet(<set url>,function(myReturn){ 

      var noteID = '' 

      $.each(myReturn.results, function(i, note){ 
       noteID = JSON.parse(note.id); 
      }); 
    }) 

STEP 2 - JSON /回調函數

function callAjaxGet(url, callBack){ 

$.ajax({ 

    url: url, 
    type: 'GET', 
    timeout: 10000, 
    success: function(data,textStatus,xhr){ 
     return callBack(xhr); 
    }, 
    error: function(xhr, status, error){ 

     console.log(xhr.responseText); 
    } 
    }); 
} 

步驟3 - 選舉JSON

{ 
"next": "http://selleck.beta.org/playlist/notes/?limit=20&offset=20&play=437", 
"previous": null, 
"results": [ 
    { 
     "id": 258, 
     "url": "/playlist/notes/258/", 
     "content": "testing", 
     "play": 437 
    } 
    ] 
} 

不管我在做什麼,noteID回來沒有價值。我看過谷歌開發工具XHR,並且可以看到JSON回來,所以認爲我誤解了一些東西。

謝謝你的任何想法和建議

史蒂夫

+1

哪裏定義你的'callback'功能?另外,服務器返回'success'回調的'data'參數中的數據。 –

+1

您正在返回xhr。你不應該回來的數據? –

回答

0

想通了。有兩件事是錯誤的。

  1. 使用XHR代替數據
  2. 未解析JSON得當,ID是在陣列,所以必須設置第一個條目,所以

    noteID = myReturn。 結果[0] .id;

感謝A.Sharma和羅恩tornambe有關XHR錯誤指針

史蒂夫