0

$.getJSON は、IE および Opera ブラウザー (Firefox、Chrome... は正常に動作します) でファイルを返します。

コードは次のとおりです。

$.getJSON("http://open.mapquestapi.com/nominatim/v1/search.php?format=json&osm_type=N&bounded=1&limit=100&viewbox=-5.667593479156494,43.54767717445222,-5.656242370605469,43.54280902999833&q=Restaurants",
{
    tagmode: "any",
    format: "json"
},
function(data) {
    var ind = 0;
    $.each(data, function(i, pos_reg){
       alert("Recovery " + i++ + " row");
    });
})
.error(function() {       
    alert("Was an error");
});

問題は、サーバーから返される Http ヘッダーにあると思います。URLを Firefox または Chromeに貼り付けると、JSON が応答することがわかります。URL を IE と Opera に貼り付けると、JSON 応答をファイルとしてダウンロードしようとします。

私はこのようなものを試しました:

$.ajaxSetup({ scriptCharset: "utf-8" , contentType: "application/json; charset=utf-8"});

しかし、同じ結果:(

何かアイデアはありますか?前もって感謝します!

4

1 に答える 1

2

これは質問に対する答えではありません。本当の質問(元の質問はあいまいです)は、OperaとInternetExplorerでクロスドメインajax呼び出しを行う方法です。

クロスオリジンへの複製AjaxリクエストはOperaとIE9では機能しませんか?トピックスターターによってリンクされています。


OperaはデフォルトでJSONを開かないことを知っていますが、実際にファイルをダウンロードしようとします。これは設定で変更できます:[設定]>[詳細設定]>[ダウンロード]、jsonを検索します。見つからない場合は、新しいタイプを作成できます。次に、application / jsonに入力し、Operaで開くように設定します(Webサイトがこのコンテンツタイプを返すことがあるため、text / jsonも追加しました)。これらの画面のスクリーンキャプチャは次のとおりです。

Operajsonのダウンロード設定

InternetExplorerでも同様のことができると思います。編集:私はInternetExplorerの解決策を見つけました。以前にSOで回答されているので、回答へのリンクをここに投稿します:https ://stackoverflow.com/a/2492211 。

于 2012-05-14T08:39:24.123 に答える