日曜日, 3月 21, 2010
[JavaScript]XMLHttpRequestのstatusで「エラーを特定できません」のエラーが出る!
▼質問
XMLHttpRequestのstatusで次のJavaScriptエラーが出るんだ!
「エラーを特定できません」
どうしてかわかるかい?
プログラムはこんな感じだ。
簡単に説明すると
非同期(Async)通信でサーバにある適当なファイルを
使って動作確認をするプログラムを作成したんだ。
request変数でXMLHttpRequestオブジェクトを取得して
div要素に各情報を出力しているプログラムなんだ。
request.onreadystatechange = function() {
document.getElementById( "request_readyState" ).innerHTML = request.readyState;
document.getElementById( "request_status" ).innerHTML = request.status;
if ( (request.readyState == 4) && (request.status == 200) ) {
document.getElementById( "request_result" ).innerHTML = "正常";
}
else {
document.getElementById( "request_result" ).innerHTML = "異常";
}
}
request.open( "POST", url, true );
request.send("");
次の行でエラーになるんだ。
「document.getElementById( "request_status" ).innerHTML = request.status;」
▼回答
onreadystatechangeイベントは、XMLHttpRequestオブジェクトの
ready状態(readyState)が変化したときに発生するため、
XMLHttpRequestオブジェクトのstatusを取得する時は、
readyStateを考慮する必要があるんだ。
0 = uninitialized(初期化されてない)
1 = loading(読み込み中)
2 = loaded(読み込み完了)
3 = interactive(相互通信可能)
4 = complete(全ての処理が完了した)
すると、次の様なプログラムになるから参考にしてみてくれ!
request.onreadystatechange = function() {
document.getElementById( "request_readyState" ).innerHTML = request.readyState;
if ( request.readyState == 4 ) {
document.getElementById( "request_status" ).innerHTML = request.status;
if ( request.status == 200 ) {
document.getElementById( "request_result" ).innerHTML = "正常";
}
else {
document.getElementById( "request_result" ).innerHTML = "異常";
}
}
}
request.open( "POST", url, true );
request.send("");
■参考サイト
XMLHttpRequest
Status codes in HTTP
XMLHttpRequestのstatusで次のJavaScriptエラーが出るんだ!
「エラーを特定できません」
どうしてかわかるかい?
プログラムはこんな感じだ。
簡単に説明すると
非同期(Async)通信でサーバにある適当なファイルを
使って動作確認をするプログラムを作成したんだ。
request変数でXMLHttpRequestオブジェクトを取得して
div要素に各情報を出力しているプログラムなんだ。
request.onreadystatechange = function() {
document.getElementById( "request_readyState" ).innerHTML = request.readyState;
document.getElementById( "request_status" ).innerHTML = request.status;
if ( (request.readyState == 4) && (request.status == 200) ) {
document.getElementById( "request_result" ).innerHTML = "正常";
}
else {
document.getElementById( "request_result" ).innerHTML = "異常";
}
}
request.open( "POST", url, true );
request.send("");
次の行でエラーになるんだ。
「document.getElementById( "request_status" ).innerHTML = request.status;」
▼回答
onreadystatechangeイベントは、XMLHttpRequestオブジェクトの
ready状態(readyState)が変化したときに発生するため、
XMLHttpRequestオブジェクトのstatusを取得する時は、
readyStateを考慮する必要があるんだ。
0 = uninitialized(初期化されてない)
1 = loading(読み込み中)
2 = loaded(読み込み完了)
3 = interactive(相互通信可能)
4 = complete(全ての処理が完了した)
すると、次の様なプログラムになるから参考にしてみてくれ!
request.onreadystatechange = function() {
document.getElementById( "request_readyState" ).innerHTML = request.readyState;
if ( request.readyState == 4 ) {
document.getElementById( "request_status" ).innerHTML = request.status;
if ( request.status == 200 ) {
document.getElementById( "request_result" ).innerHTML = "正常";
}
else {
document.getElementById( "request_result" ).innerHTML = "異常";
}
}
}
request.open( "POST", url, true );
request.send("");
■参考サイト
XMLHttpRequest
Status codes in HTTP