2013-05-29 139 views
0

由於API只有xml,所以ajax請求dataType必須以xml形式發送。我正在使用插件腳本來讓我繞過跨域問題。腳本在下面找到。
由於使用了插件,響應以json的形式返回。Jquery AJAX Json響應數據未在瀏覽器中顯示

我不知道爲什麼我無法獲得個人響應數據顯示。我設法顯示的唯一東西是瀏覽器中的[object object]。

https://github.com/denka/jQuery-Plugins/blob/e5f123741ce6bc1be93e1db846a0e59cfe7e750c/cross-domain-ajax/jquery.xdomainajax.js

爲了得到這個工作的任何建議,將不勝感激。

$.ajax({ 
    url: 'http://api.smartpea.com/api/deal/?title=water&zip=90210, ///URL + User Input 
    dataType: 'xml', 
    type: 'get', 
    beforeSend: function(){// Before Send, Add the Loader 
    $("#loading").show(); 
    }, 
    complete: function(){// Once Request is complete, Remove the Loader 
    $("#loading").hide(); 
    }, 
    success: function(data){ 
     var placement = document.getElementById('content');// location to where response is to be displayed to the user 

     jQuery.parseJSON(data); parse the json response 
     $.each(data, function(i) { 

     placement.innerHTML = data[i].Title, data[i]. BrandName, data[i]. CurrentPrice, data[i].Category; //adding the response data to the content holder in the browser 
     });  
    }, 
    error: function (xhr, ajaxOptions, thrownError){// Error Logger 
    console.log(xhr, ajaxOptions, thrownError); 
    } 

}); 
+0

'placement.innerHTML = ...'行是無效的 - 不知道你要去那裏,但你的逗號分隔值會給出一個javascript錯誤。 –

+0

我是一個Jquery的新手,我不知道如何才能將這些項目從json響應傳遞到我的內容div。我也嘗試將它們附加到它,但也沒有解決。 –

+0

如果您的回覆是XML,並且您正在調用'parseJSON',它肯定會炸燬。 –

回答

0

你sucess功能可能是這樣

success: function(data){ 
      jQuery.parseJSON(data); parse the json response 
      $.each(data, function(i) { 
      $('#content').html(data[i].Title+','+data[i]. BrandName+','+data[i]. CurrentPrice+','+data[i].Category) 

      });  
     } 
0
$.ajax({ 
    url: 'http://api.smartpea.com/api/deal/?title=water&zip=90210', 
    dataType: 'xml', 
    type: 'get', 
    beforeSend: function(){ 
    $("#loading").show(); 
    }, 
    complete: function(){ 
    $("#loading").hide(); 
    }, 
    success: function(data){ 
     var placement = document.getElementById('content'); 

     jQuery.parseJSON(data); parse the json response 
     $.each(data, function(i) { 
     placement.innerHTML = data[i].Title + " - " + data[i].BrandName + " - " + data[i].CurrentPrice + " - " + data[i].Category; 
     });  
    }, 
    error: function (xhr, ajaxOptions, thrownError){ 
    console.log(xhr, ajaxOptions, thrownError); 
    } 
}); 
+0

它似乎工作,但數據項顯示爲未定義 - 未定義 - 未定義 - 未定義。 –

+0

這是我的請求結果的一個pastebin。 http://pastebin.com/FMHaUeVt 我仍然不確定爲什麼一切都顯示爲未定義。我一直在使用的驗證工具顯示返回的json是有效的,但它帶有很多額外的東西。 jsonformatter.curiousconcept.com –

+0

這個json是無效的 –

1

最明顯的錯誤是在第二行的URL的末尾缺少引號。你應該考慮在你的代碼上使用JSHint

+0

你可以提供一些理由爲什麼OP應該考慮使用JSHint嗎? – DeanOC

+0

除了捕捉示例中的基本錯誤之外,它還有助於強化良好的JS風格和語法。 – Fallexe