質問: 4) { if (xhr.status >= 200 && xhr.status < 300) { } else { alert("test"); //ここをalert表示させたい } } } ```
回答: ***XMLHttpRequestで、readyState === 4 となる、HTTPステータスコードを教えてください*** *・403エラーや、404エラーは、ここで弾かれるでしょうか?* XMLHttpRequest(MDN) W3Cの最新ドキュメント HTTPプロトコル(RFC) 「弾かれる」と言う表現で何を期待しているのかわかりませんが、readyStateの4:DONEはすべてのデータ転送が完了した状態を意味します。HTTPステータスコードを送ってきているということはデータ転送をしているわけですから、**すべてのHTTPステータスコード**に対してreadyStateは全レスポンスの受信を完了した時点で4になります。(ただしredirect系のレスポンスはXMLHttpRequestが自動的に処理してしまうので、3xxのステータスコードが受信されることはないと思います。) ***また、「readyState === 4」 かつ 「HTTPステータスコードが200以上300未満」ではない 条件だと、何が該当するでしょうか?*** *・可能性があるHTTPステータスコードは? ・(テストしてみたいので、)この状態を意図的に作り出すことは出来るでしょうか?* 上に書いたように3xx系以外のすべてのステータスコードで可能性があります。404:Not Foundの場合でもレスポンスの受信が完了した時点でreadyStateは4になるので、存在しないpathに対してGETメッセージを送るだけで簡単に試せます。 この辺りのXMLHttpRequestの挙動を調べることで、実際は何に応用したいのでしょうか、もう少し上のレベルで本当は何をしたいのか、を質問された方が、より有用な回答が得られるように思いますが。