2

ページのコンテンツを取得しようとしていますが、このページは https を使用して保護されています。http サイトで XMLHttpRequest を使用しようとして成功しましたが、このページはログオンする必要があるページのリダイレクトを返します。

以下は、私が使用しようとしたコードです。

var xhr = new XMLHttpRequest();
xhr.onreadystatechange=function() {
if (xhr.readyState==4 && xhr.status==200) {
document.getElementById("container").innerHTML = xhr.responseXML.body.innerHTML;
    };
};
xhr.open('POST', 'https://eu.battle.net/wow/en/vault/character/auction/alliance/', true);
xhr.withCredentials = true;

xhr.send();
document.getElementById("container").innerHTML = "loaded";

Cookieと認証を含むリクエストヘッダーを設定し、メソッドをGETとPOSTに変更しようとしましたが、違いはありませんでした。

このリクエストについて誰か教えてくれませんか?

PSこれがまったく不可能な場合、別の方法を使用して成功する方法はありますか?

4

1 に答える 1

2

Access-Control-Allow-Origin ヘッダーを返さない限り、AJAX リクエストをクロスドメインにすることはできません。スクリプト内から開始されたクロスサイト HTTP 要求は、よく知られているセキュリティ上の理由から、よく知られた制限の対象となっています。たとえば、XMLHttpRequest オブジェクトを使用して作成された HTTP リクエストは、同一オリジン ポリシーの対象でした。特に、これは、XMLHttpRequest を使用する Web アプリケーションが、それがロードされたドメインに対してのみ HTTP リクエストを作成でき、他のドメインに対しては作成できないことを意味していました。

詳細: https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS

PHP プロキシを使用してこれをバイパスできます: http://blog.edwards-research.com/2012/10/cross-domain-ajax-a-simple-workaround/

于 2013-09-09T15:01:31.923 に答える