複数のサブドメイン(example.com、blog.example.com、app.example.com)に共通の認証フォームがあります。ログインフォームは、表示される場所に関係なく、このデータをexample.comに送信する必要があるため、CORSを使用することを考えましたが、
header("Access-Control-Allow-Origin: http://example.com http://blog.example.com http://app.example.com")
そこで、次のことを考えて、サーバー側でOriginヘッダーを手動で確認し、Access-Control-Allow-Origin: *
リクエストが行われる可能性がありますが、残念ながらこれが発生します MDNで
重要な注意:認証されたリクエストに応答するとき、サーバーはドメインを指定する必要があり、ワイルドカードを使用できません。
複数のドメインでリクエストを機能させ、CORSを使用して資格情報を送信する方法はありますか?
2つの考え:
1)「Access-Control-Allow-Credentials:true」ヘッダーも含めていますか?これは、Cookie資格情報を渡すために必要です(および対応するXHRクライアントは.withCredentials = trueを設定する必要があります)
2)リンクから提案を試み、現在のリクエストのオリジンのみを含めましたか。たとえば、リクエストに「Origin: http://blog.example.com 」というヘッダーが付いている場合、「Access-Control-Allow-Origin: http ://blog.example.com "、起源のリストではありません。これには、サーバー側の実装でもう少し作業が必要です。
3)もう1つの考えとして、さまざまなドメインで共有する必要がある単一のログインフォームがあると述べています。まあ、それが標準のHTMLフォームであれば、ドメイン間で通常のフォームポストを行うことができます。 CORSを使用する必要はありません。フォームの「アクション」プロパティを、投稿したいURLに設定するだけです。例えば:
<form name="login" action="http://login.example.com/doLogin">
// cross domain
header("Access-Control-Allow-Origin: ".$_SERVER['HTTP_Origin']);
header('Access-Control-Allow-Credentials: true');