2014-03-30 28 views
0

我想使用它的API這裏獲取XML從谷歌電子表格回:使用jQuery AJAX和獲取XML

Google Spreadsheet API

在協議選項卡。我能夠使用郵遞員並返回XML,但現在我正在嘗試使用JQuery它似乎並沒有工作。它成功了,因爲我已將警報置於成功函數中,並且他們已經顯示請求已成功,但我嘗試訪問XML的每種方法都已返回nullundefined。這裏是我的AJAX請求:

var xml1; 
$.ajax({type: "GET", 
     url: "https://spreadsheets.google.com/feeds/cells/" + key + "/" + sheetID + "/private/full?min-row=1&min-col=1&max-row=1", 
     dataType: "xml", 
     contentType: "application/atom+xml", 
     cache: false, 
     async: true, 
     crossDomain: true, 
     success: function(result) {xml1 = result;}}) 

我有它$.when()內,當它這樣做我提醒的xml1的價值和它的nullundefined。我沒有正確地訪問結果,或者在這裏有不同的問題嗎?

+0

你可以通過將datatType臨時設置爲「text」來檢查確切的返回字符串嗎?這可能有助於調試情況。 – nXu

+0

我剛試過。它沒有在警報中顯示任何內容,所以我認爲它是一個空的字符串。 –

+0

如果您手動打開網址,是否也會發生同樣的情況? – nXu

回答

0

如果你想在這個函數之外訪問它,xml1應該在這個函數之前被定義。

var xml1; 
$.ajax({type: "GET", 
     url: "https://spreadsheets.google.com/feeds/cells/" + key + "/" + sheetID + "/private/full?min-row=1&min-col=1&max-row=1", 
     dataType: "xml", 
     contentType: "application/atom+xml", 
     cache: false, 
     async: true, 
     crossDomain: true, 
     success: function(result) {xml1 = result;} 
}) 

console.log(xml1); 

你能提供更多的代碼嗎?就像你聲明變量的地方以及你如何檢查數據一樣?

+0

對不起,我已經在它之外宣佈了。我只是沒有表現出來。 –

0

它不工作的原因與我的另一個問題here類似。

原因是您需要訪問令牌才能對電子表格執行HTTP請求。我已經讀過郵差以某種方式可以通過這個問題,這就是爲什麼相同的請求不適用於移動設備。