18

document.domain = "example.com"この設定により、サブドメインから親ドメインにアクセスできることを読みました。

同じことが逆に機能しますか?

私のメインサイトがhttp://example.comで実行されているとしましょう。AJAX(GET&POST)を介してアクセスしたいすべてのAPI関数は、http://api.example.comでホストされています

api.example.comからアクセスできますexample.comか?

編集document.domainもう一度見てみると、これで問題が解決するとは思いません。api .example.comの呼び出しの結果は、HTMLである必要はありませんが、APIサーバーで実行されているPHPスクリプトから出力されます。JSON、プレーンテキストなどである可能性があるため、これを設定する方法はありdocument.domainません(iframeではないため)。

4

1 に答える 1

7

両方のページでdocument.domainを設定する必要があります

または、サーバーにCORSヘッダーを設定します。

http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/

CORSの概要

Firefox3.5とSafari4 は、Web開発者に代わって適切なヘッダーを送受信する「APIコンテナ」としてXMLHttpRequestを使用して、CORS仕様を実装しているため、クロスサイトリクエストが可能です。IE8は、CORS の同様の「APIコンテナ」としてXDomainRequestを使用して、CORS仕様の一部を実装し、単純なクロスサイトGETおよびPOSTリクエストを可能にします。特に、これらのブラウザはORIGINヘッダーを送信します。このヘッダーは、スキーム(http://またはhttps://)とクロスサイトリクエストを行っているページのドメインを提供します。サーバー開発者は、正しいヘッダー、特に問題のORIGINのAccess-Control-Allow-Originヘッダー(またはリソースがパブリックの場合はすべてのドメインの「*」)を確実に返送する必要があります。

CORS標準は、サーバーが許可されたオリジンドメインにリソースを提供できるようにする新しいHTTPヘッダーを追加することで機能します。ブラウザはこれらのヘッダーをサポートし、それらが確立する制限を適用します。さらに、ユーザーデータに副作用を引き起こす可能性のあるHTTPリクエストメソッド(特に、GET以外のHTTPメソッド、または特定のMIMEタイプでのPOST使用)の場合、仕様では、ブラウザーがリクエストを「プリフライト」し、サポートされているメソッドを要求することを義務付けています。 HTTP OPTIONSリクエストヘッダーを使用してサーバーから送信し、サーバーからの「承認」時に、実際のHTTPリクエストメソッドを使用して実際のリクエストを送信します。サーバーは、「クレデンシャル」(CookieやHTTP認証データを含む)をリクエストとともに送信する必要があるかどうかをクライアントに通知することもできます。

于 2011-06-08T11:21:19.803 に答える