jquery $.getJSON を使用した JSONP リクエストが整形式の JSON で機能しない
-
19-09-2019 - |
質問
試しているURLから今それが可能かどうかはわかりません。この URL を参照してください。 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);
})
しかし、これ (callback=?):
$.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});
でもアクセスできないんです…どちらの例でも、アラートは発生しません。誰か助けてくれませんか?
解決 5
<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を使って作業し、それをやったことがなかったが、上記の単純なコードは私の問題を解決しました。私はヤフーからの助けが見つかりました: http://developer.yahoo.com/common/json.html >
他のヒント
<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のを使用し、文書本体の下部に、このリストを置く。
タグ
callback=?
して変更してみてください、仕事にテスト機能を取得するには スクリプトは、上の http://www.heiaheia.comするからJSONを取得しようとしていますhref = "http://www.heiaheia.com" のrel = "nofollowをnoreferrer"> http://www.heiaheia.com の?
これが原因でない場合は、、現在、
スクリプトを提供するものよりも、別のサーバーに(ジャバスクリプトを使用して)要求を行う権限を与えていませんリクエストが別のドメインに送信される場合は、次を使用してみてください jsonP 方法。jsonP ドキュメントを検索する