2011-10-18 45 views
1

任何人都知道爲什麼我的ajax失敗?JSONP和JQuery Ajax:如何用JSONP設置變量?

我通過JSONP及彼數據: JSON Data

您可以使用此代碼,並注意 '警報' 如何永遠不會執行:

$(document).ready(function() { 
    var url = "http://www.finddata.org/buytimeseriesdata/getEncomChartSeriesData?_=1317741441988&tsId=F000008DDB"; 
    $.getJSON(url + "&callback=?", null, function(data) { 
     alert('hi'); 
    }); 
}); 

回答

3

我通過JSONP從這裏獲取數據

不,你沒有得到ny JSONP data。你得到的JSON數據不是同一個概念。看起來你所指出的網址不支持JSONP,這就是你的代碼無法工作的原因。響應必須用您指定的回調參數封裝,但服務器忽略它。

例如,如果你想要這個工作,following url必須返回:

foo({"datas":[...],"unit":"%","records":27}) 

,而不是(它目前如此):

{"datas":[...],"unit":"%","records":27} 

我建議你閱讀following guide如果想要執行corss域的AJAX請求。

+0

謝謝Darin!因此,我必須使用函數或其他域返回如下內容:'var F00000CX1E = [[Date.UTC(1979,01,31),70.74],[Date.UTC(1979,02,28),70.99 ]]' –

+1

@DonnyP,不,你必須修改'http:// www.finddata.org'上的'getEncomChartSeriesData'腳本,以便返回JSONP。如果您無法訪問此遠程域,則無法執行任何操作。在這種情況下,您唯一的機會是在您的域中編寫一個服務器端腳本,它將充當橋樑。閱讀以下指南:http://usejquery.com/posts/9/the-jquery-cross-domain-ajax-guide –

+0

我確實有訪問finddata.org域。它可以輸出我需要的任何東西。我希望能夠使用這裏使用的格式(http://www.highcharts.com/samples/data/usdeur.js)。我目前只是在裏面使用它,它可以工作,但我想正確使用它與jQuery和成功功​​能。 –

0

嘗試在jQuery的

$.getJSON(url + "&callback=?", function(data) { 
[...] 

可選參數不需要documentatio被清零,像PHP。

+0

你是對的,但這不是json(p)檢索失敗的原因... – Rafay