2016-04-09 3 views
0

これは私をたくさん混乱させます。ブラウザで2つのタブが開いているとします(1つはhttp://aaa.com、もう1つはhttp://bbb.com)。クロスオリジンポリシーはどのように機能しますか?

のは、私は、ブラウザのJavaScriptコンソールからの要求

$ajax({ 
    method : 'POST', 
    url : 'http://aaa.com/SomeAction', 
    ... 
}); 

を作りましょう。私がクロスオリジンのポリシーを理解する方法は、サーバが入力したJSコンソールがhttp://aaa.comのタブにあるものであれば、そのリクエストが発生することのみを許可するということです。しかし、サーバーはそれをどのように知っていますか?私のブラウザは、リクエストがどこから来たのかを示すヘッダーを送りますか?

+0

'Network'タブを開き、' $ .ajax() 'リクエストのurlを選択し、' Headers'タブをクリックし、 'Request Headers'にスクロールしてリクエストのリクエストヘッダとレスポンスヘッダを確認できます。 – guest271314

+0

サーバーは何も知っている必要はありません。_client_はこのポリシーを実施するものです。 (ここではCORSについて話していない限り、当然のことながらサーバーもその役割を果たす必要があります) – CBroe

+0

@CBroe - CORSを使用しても、サーバーはポリシーを強制しません。それはそれを緩和する。 – Quentin

答えて

0

は、サーバが唯一の私はにそれを入力したJS コンソールがhttp://aaa.com

ない真のためのタブの一つであった場合、その要求が発生することを可能にするということです。

example.comがexample.orgにAJAXリクエストを送信することを停止するものはありません。ただし、同じ起点ポリシーにより、返された応答をexample.comが読み取ることはできなくなります。

Same Origin Policyは、サーバーではなくクライアント側のブラウザで適用されます。

関連する問題