2014-06-19 18 views
0

我的API URL返回以下JSON:無法從jQuery的AJAX API調用JSON數據

[{"_id":{"$id":"529c759d361ae724088b4568"},"name":"1877","soundcloud_url":"","genres":["rock","electro"]}] 

這裏是我的jQuery的AJAX調用:

$.ajax({ 
url: gigniteAPI, 
dataType: "jsonp", 
complete: function (data) { 

    var ParsedObject = JSON.stringify(data); 
    alert(ParsedObject); 

    } 
    }); 

在Chrome中,我可以看到腳本呼叫以及發回的數據。然而,當我JSON.stringify結果我得到的是:

{"readyState":4,"status":200,"statusText":"success"} 

爲什麼不是我的輸出數據API?

與我的回覆中的方括號有關嗎?

UPDATE:

也許有人能得到這個的jsfiddle輸出從JSON響應的「名稱」鍵? http://jsfiddle.net/T85eB/

+6

您的API正在返回JSON,而不是JSONP。 – Barmar

+0

@Barmar我應該使用什麼dataType? dataType:json用於域相同的原始請求。 – Robjocky

+0

如果它是不同的域,則需要修復服務器,以便它返回JSONP而不是JSON。 – Barmar

回答

3

complete函數接收XHR對象作爲響應。我相信你應該使用.done(功能......)來獲取數據:

這是從這裏取:http://api.jquery.com/jquery.ajax/

$.ajax({ 
    url: gigniteAPI, 
    dataType: "jsonp") 
}) 
.done(function (data) { 

    var ParsedObject = JSON.stringify(data); 
    alert(ParsedObject); 

    } 
    }) 

;

+1

爲什麼'.done()',爲什麼不使用'$ .ajax'的'success'屬性?另外,我需要仔細檢查'.done()'是否能夠在那裏工作 - 是否會收到數據。 – vlaz

+1

那麼'done(function(data){/*...*/})確實有效,但我仍然認爲'success'更合適。 – vlaz

+0

這些似乎不起作用。這裏是一個jsfiddle來測試它們http://jsfiddle.net/T85eB/ – Robjocky