$.getJSON("http://www.geoplugin.net/json.gp?ip=117.201.92.17",function(data){alert(data);});
このコードは正常に実行されますが、URLの応答は空です。ただし、URLをコピーして貼り付けて同じURLにアクセスすると、機能します。なぜ何かアイデアはありますか?
$.getJSON("http://www.geoplugin.net/json.gp?ip=117.201.92.17",function(data){alert(data);});
このコードは正常に実行されますが、URLの応答は空です。ただし、URLをコピーして貼り付けて同じURLにアクセスすると、機能します。なぜ何かアイデアはありますか?
このページによると(リンク):
AJAXとエラー:無効なラベル
たとえば、jQueryを使用してJSON WebサービスへのAJAX呼び出しを行う場合、Javascriptエラーが表示される可能性があります。エラー:無効なラベルこのエラーを排除するには、タグjsoncallback =?JSONWebサービスへのjQueryAjax呼び出しを行うときにURLに追加します。
$.getJSON("http://www.geoplugin.net/json.gp?jsoncallback=?", function (data) { for (var i in data) { document.write('data["i"] = ' + i + '<br/>'); } );
そこで、それを追加して、ここ(リンク)にフィドルを作成し、それが機能していることを示しました。
http://api.jquery.com/jQuery.getJSON/状態のドキュメント:
重要:jQuery 1.4以降、JSONファイルに構文エラーが含まれている場合、リクエストは通常サイレントに失敗します。このため、JSONデータを頻繁に手動で編集することは避けてください。JSONは、JavaScriptのオブジェクトリテラル表記よりも厳密な構文規則を備えたデータ交換形式です。たとえば、JSONで表されるすべての文字列は、プロパティであろうと値であろうと、二重引用符で囲む必要があります。JSON形式の詳細については、http://json.org/を参照してください。
データは有効なJSON形式で返されていますか?次の別のアプローチを試してみませんか。
$.ajax({
url: url,
dataType: 'json',
data: data,
success: callback
});
このようにして、json dataTypeを削除し、jsonであるかどうかに関係なく、呼び出しが機能していることを確認できます。
また、ブラウザのセキュリティ制限により、ajaxリクエストには同一生成元ポリシーが適用されることを忘れないでください。リクエストは、別のドメイン、サブドメイン、またはプロトコルからデータを正常に取得できません。