2011-12-22 15 views
4

クロスドメインの質問が非常に多いことは知っていますが、私が探しているものを見つけることができませんでした。CNAMEレコードを使用してドメイン間の要求を許可することはできますか?

a.comからb.comへのクライアントAJAXリクエストを作成したいと思いますが、これは明らかに許可されていません。 bacom - > b.com CNAMEレコードを作成すると、ブラウザはこのリクエストを許可します。なぜなら、a.comドメインを所有しているユーザーがb.comへのリクエストを明示的に許可したいと思っているからです。 -Control-Allow:要求を許可しないOriginエラーです。このリクエストをCNAMEで行うことはできませんか?

注:私はb.comを支配していないので、そこでヘッダーを設定することはできません。

答えて

1

私はこの問題を回避取得する方法として、CNAMEのことを聞いたことがないので、私はそれはあなたの問題への解決策ではないと仮定しても安全だと思います。

9

号(しかし、私は本当の、について説明を持っている)、「クロスドメインリクエスト」の

「道路のルールは、」一般的に「同一生成元ポリシー」によって支配されているが(参照:The W3C CommentaryWikipediaGoogle Browser Security Handbookを原点は、URLのスキーム、ホスト、およびポートによって定義さ

Mozilla Developer Network

W3Cは、具体的に述べています。

この定義によれば、foo.comからbar.foo.comへの要求さえもブロックされます。あなたの例では

、あなたは(私はあなたがタイプミスがあったと仮定している)bar.comを指しbar.foo.comためCNAMEの作成がbar.foo.com経由bar.comへの要求を許可すべきであることを示唆しています。しかし、上記のように、foo.comからのリクエストでさえ、クライアント側でHTTPリクエストをbar.foo.comにすることがブロックされます。

Mozillaは(1が指定されている場合)、プロトコル、 ポート、およびホストが両方のページで同じであれば同じ起源を持つように2つのページを考慮:

Mozillaのページも、この具体的な例があります。次の表 は、URLとの原点比較の例を示しています http://store.company.com/dir/page.html

URL |アウトカム|理由

http://store.company.com/dir2/other.html |成功
http://store.company.com/dir/inner/another.html |成功
https://store.company.com/secure.html |失敗|異なるプロトコル http://store.company.com:81/dir/etc.html |失敗|異なるポート http://news.company.com/dir/other.html |失敗|異なるホスト

関連する問題