teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2015/12/08 00:51

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37460

answer CHANGED
@@ -3,4 +3,17 @@
3
3
  Chrome のエラーメッセージを拝見しましたが、 No 'Access-Control-Allow-Origin' header とあり、 Same-Origin Policy 違反により、サーバまでリクエストが行ってないのではないかと思いました。
4
4
  そこで試しに Same-Origin Policy 違反になる teratail にリクエストを飛ばしてみたところ、`jqxhr`は404を返しました。
5
5
 
6
- おそらくローカル環境からWEBサーバにリクエストをしているのが原因なのでは。
6
+ おそらくローカル環境からWEBサーバにリクエストをしているのが原因なのでは。
7
+  
8
+ ---
9
+
10
+
11
+ #####追記
12
+ コメントに返信。
13
+ > ただ、サーバ側にてApacheのaccess.logを監視していますと、401でログ出力されており、リクエストはサーバ側へ届いているようです。サーバ側は確かに401を返しているのですが、どこで404に変換されているのか…。
14
+
15
+ CORSの仕様によりますと、
16
+ > The getResponseHeader() method of XMLHttpRequest will therefore **not expose any header** not indicated above.
17
+ [Cross-Origin Resource Sharing](http://www.w3.org/TR/cors/#handling-a-response-to-a-cross-origin-request)
18
+
19
+ とあります。おそらくセキュリティ上の理由からだと思いますが、Same-Origin Policy 違反の場合、クライアントはレスポンスヘッダをフィルタすることが仕様のようです。ステータスコードについてはそのような明示的な記述はありませんが、同様に処理されるのが妥当のように思えます。