以前記事である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ステータス・コードとメソッド
0 件のコメント:
コメントを投稿