XMLHttpRequestでリクエストを発行してエラーになったとき、
- CORSエラー(
Access-Control-Allow-Origin
ヘッダが存在しないなど) - ネットワークエラー(TCPコネクションを確立できないなど)
上記のどちらが原因なのかをプログラム的に判定する方法は存在しない。
- どちらも
xhr.readyState==4
かつxhr.status==0
になる - CORSの仕様的に、どちらも同じふるまいをするように規定されているらしい
- Chrome Devtoolsのコンソールには
No 'Access-Control-Allow-Origin' header is present on the requested resource.
というエラーが表示されるんだけど、この文言をプログラム的に取得する方法はない