ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

JQueryのajax()でのエラー時の返り方-IEとChromeの違い

2013-12-19 11:27:11 | ネットワーク
JQueryのajax()を使って非同期アクセスをした場合、エラーが起こると、

error: function(XMLHttpRequest, textStatus, errorThrown){

//  この中に入る

}

このとき、

XMLHttpRequest.statusでエラーコード(404とか)、
XMLHttpRequest.statusTextでエラーメッセージ

が拾えるが、この返り値が、IEとChromeで微妙にちがっている。

以下、そのまとめ




■チェック内容

以下のプログラム
<HTML>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$(function(){ 
  $("#bt1").click(function () {
	$.ajax({
   		type: "POST",
   		url: "dummy.jsp",
		dataType:"html",
   		success: function(msg){
			document.open();
			document.write(msg);
			document.close();
   		},
   		error: function(XMLHttpRequest, textStatus, errorThrown){
			msg="--- Error Status ---"
			msg=msg+"<BR>"+"status:"+XMLHttpRequest.status;
			msg=msg+"<BR>"+"statusText:"+XMLHttpRequest.statusText;
			msg=msg+"<BR>"+"textStatus:"+textStatus;
			msg=msg+"<BR>"+"errorThrown:"+errorThrown;
			for(var i in errorThrown)
			{
				msg=msg+"<BR>"+"error "+i+":"+ errorThrown[i];
			}
			document.open();
			document.write(msg);
			document.close();
   		}
	});	
  });
}); 
</script>
</head>
<body>

<BUTTON id="bt1">AJAX</BUTTON>

</body>
</html>


を、
(1)c:/tmp/codetest のフォルダの下に、index.htmという名前で、
(2)Tomcatのベース/webapps/codetestの下にindex.jspという名前で、
それぞれ用意する。

なお、
(1)には、index.htmと同じフォルダに、dummy.htm
(2)には、index.jspと同じフォルダに、dummy.jsp
が置いてあり、dummy.htm、dummy.jspとも、中身は
dummy
とだけ記述されている。

以下、赤字のURLの部分を変えていく




■(1)のファイルパス指定→存在するファイル

上記赤字のURLを「dummy.htm」と記述
としてブラウザに「C:\tmp\codetest\index.htm」と入力し、アクセス
AJAXボタンをクリックする

・IEの場合
dummyと表示される(=アクセスできる)

・Chromeの場合
(ファイルパスはfile:///C:/tmp/codetest/index.htmと書き換えられる)
以下の表示でエラー

--- Error Status ---
status:404
statusText:error
textStatus:error
errorThrown:





■(1)のファイルパス指定→存在しないファイル

上記赤字のURLを「dummy2.htm」と記述
としてブラウザに「C:\tmp\codetest\index.htm」と入力し、アクセス
AJAXボタンをクリックする

・IEの場合
以下の表示でエラー
--- Error Status ---
status:0
statusText:[object Error]
textStatus:error
errorThrown:[object Error]
error name:TypeError
error message:The system cannot locate the resource specified.
error number:-2146697211
error description:The system cannot locate the resource specified.

・Chromeの場合
(ファイルパスはfile:///C:/tmp/codetest/index.htmと書き換えられる)
以下の表示でエラー

--- Error Status ---
status:404
statusText:error
textStatus:error
errorThrown:




■(2)のURL指定→存在するファイルをフルで指定

Tomcatを起動し、index.jspの
上記赤字のURLを「"http://localhost:8080/codetest/dummy.jsp"」と記述
"http://localhost:8080/codetest/をアクセスしたとき

・IEの場合
dummyと表示される(=アクセスできる)

・Chromeの場合
dummyと表示される(=アクセスできる)




■(2)のURL指定→存在するファイルを相対指定

Tomcatを起動し、index.jspの
上記赤字のURLを「"dummy.jsp"」と記述
"http://localhost:8080/codetest/をアクセスしたとき

・IEの場合
dummyと表示される(=アクセスできる)

・Chromeの場合
dummyと表示される(=アクセスできる)




■(2)のURL指定→存在しないファイルをフルで指定

Tomcatを起動し、index.jspの
上記赤字のURLを「"http://localhost:8080/codetest/dummy2.jsp"」と記述
"http://localhost:8080/codetest/をアクセスしたとき

・IEの場合
--- Error Status ---
status:404
statusText:Not Found
textStatus:error
errorThrown:Not Found

・Chromeの場合
--- Error Status ---
status:404
statusText:Not Found
textStatus:error
errorThrown:Not Found
error 0:N
error 1:o
error 2:t
error 3:
error 4:F
error 5:o
error 6:u
error 7:n
error 8:d




■(2)のURL指定→存在しないファイルを相対指定

Tomcatを起動し、index.jspの
上記赤字のURLを「"dummy2.jsp"」と記述
"http://localhost:8080/codetest/をアクセスしたとき

・IEの場合
--- Error Status ---
status:404
statusText:Not Found
textStatus:error
errorThrown:Not Found

・Chromeの場合
--- Error Status ---
status:404
statusText:Not Found
textStatus:error
errorThrown:Not Found
error 0:N
error 1:o
error 2:t
error 3:
error 4:F
error 5:o
error 6:u
error 7:n
error 8:d




■(2)のURL指定→存在しないサーバーアプリ指定
Tomcatを起動し、index.jspの
上記赤字のURLを「"http://localhost:8080/codetest2"」と記述
(webappsの下には、codetest2のファイルは存在しない)
"http://localhost:8080/codetest/をアクセスしたとき

・IEの場合
--- Error Status ---
status:404
statusText:Not Found
textStatus:error
errorThrown:Not Found

・Chromeの場合
--- Error Status ---
status:404
statusText:Not Found
textStatus:error
errorThrown:Not Found
error 0:N
error 1:o
error 2:t
error 3:
error 4:F
error 5:o
error 6:u
error 7:n
error 8:d





■(2)のURL指定→存在しないIPアドレス指定
Tomcatを起動し、index.jspの
上記赤字のURLを「"http://192.168.4.1"」と記述
(192.168.4.1のIPアドレスを持ったサーバーは存在しない)
"http://localhost:8080/codetest/をアクセスしたとき

・IEの場合
--- Error Status ---
status:0
statusText:No Transport
textStatus:error
errorThrown:No Transport

・Chromeの場合
--- Error Status ---
status:0
statusText:error
textStatus:error
errorThrown:




以上。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする