0

jquery-1.9.1 を使用して、CORS サポートを有効にしました。

$.support.cors = true;

次に、以下に示すように ajax リクエストを作成しています。サーバー側からの jsonp コールバック サポートも有効にしています。

$.ajax({
            type: 'GET',
            url: url,
            async: false,
            contentType: "application/json",
            jsonpCallback: 'jsonCallback',
            dataType: 'json',
            success: function(data) {
               var featureJSON = data.feature;

            },
            error: function(e) {

            },
            complete: function () {

            }
        });

これを jboss にデプロイし、別のコンピューター (異なるドメイン/IP アドレス) からページにアクセスしました。この ajax 呼び出しは、FF と Chrome で別のコンピューターから、および同じコンピューターで機能します。

IE でも動作しますが、同じコンピューターで動作します。

展開したコンピューター以外のコンピューターからアクセスすると、IE で動作しません。

グーグルで調べた後、IE* では jquery によるクロスドメイン ajax 呼び出しが許可されていないことがわかりました。また、jquery は IE の XDomain オブジェクトをサポートしていません。

結論として、jquery で IE の XDomain オブジェクトを使用するにはどうすればよいですか? 、私はアプリをほぼ完成させました (悪いことに、XDomain のことをチェックしていませんでした)。コードを再構築することはできません。他の解決策はありますか?

4

1 に答える 1

2

CORS を「有効にする」ことはできません...$.support は、現在のブラウザがサポートするもののみを示すテーブルであると想定されています。false の値を true に変更しても、サポートされていない機能が古いブラウザーに魔法のように追加されるわけではありません。

if ($.support.cors) {
// your code
} else {
    $.ajax({
        type: 'GET',
        url: url,
        dataType: 'jsonp',
        data: {
          callback : '?'
        },
        success: function(data) {
           var featureJSON = data.feature;

        },
        error: function(e) {

        },
        complete: function () {

        }
   });
}
于 2013-03-21T14:24:08.763 に答える