次のような状況があります。あるアプリケーションからjqueryを使用したサブドメインhtmlページ
https://subdomain.mydomain.com私はhttps://mydomain.com/page.aspx
Iに位置してページのHTMLを取得しようとしていますjquery $ .ajaxメソッドでこれを行っています。
$.ajax({
url: url,
type: 'GET',
contentType: 'application/x-www-form-urlencoded',
success: function (data, status, xhr) {
console.info("success");
},
error: function (xhr, status, error) {
console.error(error);
}
});
実際にaspxページが呼び出され、実行されます。検査官(IE devのツールやFirebugの)からIは、応答ステータスが200 OKであることがわかり、それが予想されるサイズ(80キロバイト)が、応答内容を持っています
(XDomainRequestを通して)IEとFirefoxは同じ動作をします空です。 jQueryのエラーはそれほど有用ではありません。
readyState: 0,
responseText: ""
status: 0,
statusText: "error"
私はそれが同一生成元ポリシーに関わる何かだと思います。私はYQL(しかし、私は追加のライブラリを使いたくない)とJSONPを使ってこの種の問題を解決する人たちを見ています(しかし私は普通のHTMLで作業しています)。絶望の瞬間に
は私がdocument.domain = 'mydomain.com';
jQuery.support.cors = true;
ありません成功のようにもトリックを試してみました。すべてのヒント?
この問題は、呼び出されたアプリケーションで有効にする必要があるAccess-Control-Allow-Origin
が原因でした。私の場合、IIS7ホスティングのasp.netアプリケーションでした。以下のウェブサイトは、多くのサーバタイプにenable CORSに多くの設定を報告し
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
それは働いた!私はちょうど正しいサーバー構成に追加しなければなりませんでした。このリンクは私を大いに助けました http://enable-cors.org/ ありがとうございました! – abx78