9

これは私が使用しているコードです。以下は次のとおりです。

IE9を使用していますが、[ネットワーク]タブで送信されているリクエストを確認できません。私はJSPでAccess-Controlヘッダーを次のように設定しています。

<% response.setHeader("Access-Control-Allow-Origin", "*");%>

JSPからAJAXHTMLコンテンツを取得するためのコード:

if ($.browser.msie && window.XDomainRequest) {

    var xdr = new window.XDomainRequest();
    xdr.open("GET", "http://dev01.org:11110/crs/qw/qw.jsp?&_=" + Math.random());
    xdr.contentType = "text/plain";
    xdr.timeout = 5000;
    xdr.onerror = function () {
        console.log('we have an error!');
    }
    xdr.onprogress = function () {
        console.log('this sucks!');
    };
    xdr.ontimeout = function () {
        console.log('it timed out!');
    };
    xdr.onopen = function () {
        console.log('we open the xdomainrequest');
    };
    xdr.onload = function() {
        alert(xdr.responseText);
    };
    xdr.send(null);
} else { ...... }

アクセスが拒否されましたエラーが発生します。どんな助けでも大歓迎です!

4

2 に答える 2

1

リクエストは、ホスティング ページと同じスキームをターゲットにする必要があります

あなたの例では、次のリクエストを行っています:

http://dev01 ...

これは HTTP プロトコルから行う必要があります。

例: js スクリプトが配置されているサイトの場合: 次のようにhttp://dev.org 実行できます。

xhr = new XDomainRequest();
xhr.open("GET", "http://dev01.org?p=1");

しかし、これは「アクセスが拒否されました」をスローします:

xhr = new XDomainRequest();
xhr.open("GET", "https://dev01.org?p=1");
于 2013-06-10T16:19:40.650 に答える