初歩的な質問で恥ずかしいのですが。。。
既に読み込んだページから、別ドメインに通信することができない、
というのはつまり、
既に読み込んだページから、別のIPアドレスに通信することができない、
ということと、同義なのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
ベストアンサー
厳密に言えば、異なります。
ドメイン=IPアドレスで、1対1の関係なら、その認識で大丈夫ですが、
例えば www.google.co.jp なんかは、複数のIPアドレスで運用されています。
つまり、ドメイン:IPアドレスが1:複数となりますので、
もしもwww.google.co.jp内で同ドメインにAjax通信をした場合、
別のIPアドレスにリクエストが飛ぶ可能性がありますが、
通信自体は問題なくできます。
(実際にはキャッシュなどされ、ないかもしれません。)
このように、クロスドメインの制約は、別IPではなく別ドメインの場合のみです。
googleのような別のサーバ(IPアドレス)運用でも、
DNSラウンドロビンなどで同じドメインが割り当てられていた場合、
通信することができます。
しかし逆に、同じIPアドレスであっても、バーチャルホストなどで
1台のサーバに違うドメインが割り当てられている場合は、通信することができません。
この場合は、ドメイン:IPアドレスが複数:1です。
あくまで、ドメインの話です。
IPアドレスは無関係と考えた方がいいでしょう。
ちなみに余談ですが、クロスドメイン制約を回避する方法として、
JSONではなくJSONP方式でAjax通信するという方法があります。
これであれば、違うドメインでも通信することができます。
一般的なAPIであれば、callback=[関数名]という引数を渡せば、利用できます。
詳しくはこちらをどうぞ。
余談でした。
投稿2015/07/16 09:09
編集2015/07/16 09:11総合スコア259
0
既に解決済になっいて、かつ、質問の内容と直接関係なくて恐縮ですが・・
既に読み込んだページから、別ドメインに通信することができない、
というのは、ある意味誤りです(通信という言葉の定義によりますが・・)。
正確には、リクエストを送信することはできるがレスポンスに JavaScript からアクセスできない、です。
(リクエストを送ってみなければ Allow-*** などをサーバが返すかどうかわかりません)
プリフライトリクエストが送られるケースであれば、サーバ側で特別な対応をしていない限り実質リクエストすら送れないのと同じですけれども。
投稿2015/07/17 03:14
総合スコア4514
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
大変参考になりました。
お二方ともありがとうございました。
投稿2015/07/17 00:14
総合スコア48
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。