2012-07-20 56 views
0

我找回一些JSON,並需要將其顯示在我的頁面上,但它似乎不會顯示!爲什麼我無法處理JSON響應?

有人可以請看看,看看你是否能看到我要去哪裏錯了?

代碼:

$.ajax({ type: "GET", 
    url: "URL GOES HERE - Cant give for obvious reasons :)", 
    dataType: "jsonp", 
    success: function (response) { 
     var result = response.d; 
     $.each(result, function (index, res) { 
      $('#questions').val(res.q); 

     }); 
    }, 
    error: function (msg) { 

    } 
}); 

JSON:

{ 
    "d": [ 
     { 
      "id": "1002 ", 
      "q": "What region is Auchentoshan whisky made in", 
      "a1": "Highlands", 
      "a2": "Speyside", 
      "a3": "Lowlands" 
     }, 
     { 
      "id": "1042 ", 
      "q": "Chase’s award winning vodka is made from...", 
      "a1": "Grapes", 
      "a2": "Rye", 
      "a3": "Potatoes" 
     } 
    ] 
} 
+0

所以'的console.log(響應)'在成功處理程序提供了什麼? – VisioN 2012-07-20 16:18:43

+0

您網頁上的哪些元素具有「問題」ID? – MrOBrian 2012-07-20 16:19:19

+0

你爲什麼使用'datatype:「jsonp」'而不是'「json」'? – jessegavin 2012-07-20 16:19:34

回答

0
$('#questions').val(res.q); 

根據您的你想設置什麼,你可能需要使用:

$('#questions').html(res.q); 
+0

也許不應該使用一個id,除非一次只顯示一個問題。 – MrOBrian 2012-07-20 16:27:13

+0

這是目前只是測試,以確保thigns回來:) – thatuxguy 2012-07-20 16:29:04

+0

我目前有一個文本框與問題的ID只是爲了確保我可以得到回報:) – thatuxguy 2012-07-20 16:35:31

0

隨着dataTypejsonp響應預期是一個JSON斑點包裹在一個函數調用。由於您只返回JSON,因此您應該使用jsondataType

我調整了您的示例以使用JSFiddle echo API。在first version中,我使用了代碼中使用的jsonpdataType。正如你看到,如果你訪問該鏈接,它不起作用。在edited version我用dataTypejson它工作得很好。