[英]JSONP request using jquery $.getJSON not working on well formed JSON
我不確定現在是否可以從我嘗試的網址中獲取。 請參閱以下網址: http : //www.heiaheia.com/voimakaksikko/stats.json
它始終提供相同的填充功能“ voimakaksikkoStats”。 它是格式正確的JSON,但我無法從遠程服務器加載它。 它需要從服務器端進行一些工作還是可以用javascript加載? 我認為問題必須與該回調函數有關...
JQuery不是必需的,但是會很好。
此(callback = voimakaksikkoStats)不返回任何內容(firebug-> net-> response),並且警報不會觸發:
$.getJSON("http://www.heiaheia.com/voimakaksikko/stats.json?callback=voimakaksikkoStats", function(data){
alert(data);
})
但這(回調=?):
$.getJSON("http://www.heiaheia.com/voimakaksikko/stats.json?callback=?", function(data){
alert(data);
})
返回:
voimakaksikkoStats({"Top5Sports":[],"Top5Tests":{"8":"No-exercise ennuste","1":"Painoindeksi","2":"Vy\u00f6t\u00e4r\u00f6n ymp\u00e4rys","10":"Cooperin testi","4":"Etunojapunnerrus"},"Top5CitiesByTests":[],"Top5CitiesByExercises":[],"ExercisesLogged":0,"Top5CitiesByUsers":[""],"TestsTaken":22,"RegisteredUsers":1});
但是我無法訪問它。在這兩個示例中,警報都不會觸發。 有人可以幫忙嗎?
<script type="text/javascript">
function voimakaksikkoStats(stats) {
var ul = new Element('ul');
ul.insert(new Element('li').update('Registered users: '+ stats['RegisteredUsers']));
ul.insert(new Element('li').update('Tests taken: '+ stats['TestsTaken']));
ul.insert(new Element('li').update('Top5 sports: '+ stats['Top5Sports'].join(', ')));
$(document.body).insert({'bottom': ul});
}
</script>
<script type="text/javascript" src="http:/www.heiaheia.com/voimakaksikko/stats.json"></script>
本示例使用Prototype.js從給定的統計信息中創建帶有一些數據的列表,然后將該列表放在文檔主體的底部。
是腳本試圖獲取從JSON http://www.heiaheia.com也http://www.heiaheia.com ?
如果不是這個原因,則當前無權向使用腳本的服務器以外的其他服務器發出請求(使用javascript)
為了使您的測試功能正常工作,請嘗試更改為callback=?
如果您的請求轉到另一個域,請嘗試使用jsonP方法。 搜索jsonP文檔
<script type="text/javascript">
function voimakaksikkoStats(obj) {
alert(obj.TestsTaken);
}
</script>
<script type="text/javascript" src="http://www.heiaheia.com/voimakaksikko/stats.json"></script>
我從來沒有使用過jQuery,但是上面的簡單代碼解決了我的問題。 我從Yahoo找到了幫助: http : //developer.yahoo.com/common/json.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.