[Javascript] サーバーからのresponse値についての知識を深める

2016年8月20日

Javascript テクノロジー プログラミング

以前記事であるAJAXの独自ライブラリの中に記述しているresponse値を備忘録としてメモしておきます。 [Javascript] Ajaxライブラリ この記事内にある、「readyState」と「status」の2つのプロパティは、サーバーからのレスポンスについての状態なので、内容をちゃんと理解しておきましょう。

readyState

onreadystatechangeイベントで発生するタイミングで、その時のredyStateプロパティの値で、今現在サーバーに問い合わせているデータがどういうレスポンス状態かを把握できます。
0未初期化状態(openメソッドが呼ばれていない状態)
1リクエスト準備中(sendメソッドが呼ばれていない状態)
2リクエスト送信中(statusレスポンスヘッダがない状態)
3データ受信中(レスポンスヘッダ取得中)
4データ受信完了
AJAX処理を行なっているJSの内でイベント取得して行いましょう。 その際にasyncがtrueの状態(非同期通信)の時に上記値が取得できます。(openメソッドの第3オプション)

sample

httpoj.onreadystatechange = function(){ //readyState値は4で受信完了; if (httpoj.readyState==4){ //コールバック option.onSuccess(httpoj.responseText); } };

status

readyState==4の状態でデータ受信が完了した時に、サーバー返り値のレスポンスヘッダの値を取得できます。
200リクエストが正常に成功した状態
401サーバーにアクセス許可がない
403サーバーのアクセス拒否
404リクエストが見つからない状態 (File not found)
500サーバーエラー(CGI等のバグで発生)

sample

xmlhttp.onreadystatechange=function(){ var s=""; if(xmlhttp.readyState==4){ /* ★HTTP通信エラー検出 */ switch(xmlhttp.status || xmlhttp.statusText){ case 200: case "OK": //リクエスト成功 break; case 401: case "Unauthorized": //不許可 break; case 403: case "Forbidden": //アクセス拒否 break; case 404: case "Not Found": //ファイルなし break; case 500: case "Internal Server Error": //サーバー内部エラー break; default: break; } } もっと他の値も知りたい人は以下のリンクを見て確認ください。 HTTPステータス・コードとメソッド

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。