- PR -

Httpステータスコードについて

1
投稿者投稿内容
まさぷぅ〜
会議室デビュー日: 2008/10/21
投稿数: 2
投稿日時: 2008-11-26 09:49
お世話になっております。
現在StrutsとAjaxを使用してシステムを開発しているのですが、サーブレット側でHttpステータスコード(500)を設定してもブラウザ側でalertを使用し表示させると200になっています。なぜだか検討もつきません。どなたかご教授願います。

サーバー側(catch内容)
try{

}catch(Exception e){
e.getStackTrace();
try{
PrintWriter out = response.getWriter();
  out.println("error");
response.sendError( HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
return (ActionForward)map.findForward("err");
}catch(Exception ee){
}
}

ブラウザ側(Ajax.Updeter)
ajax = new Ajax.Updater(
"hogehoge",
hogehoge.do",
{
"method": "post",
parameters:$("AForm").serialize(),
onSuccess: function(request) {
alert(request.readyState);
alert(request.status);},
onFailure: function(request) {
var errmsg = request.responseText;
if(errmsg==""){
alert('読み込みに失敗しました');
}else{
alert(errmsg);
}
},
onException: function(request){
alert('通信成功後の処理でエラーを検出しました。');
}
}
);
ひろ@ya
大ベテラン
会議室デビュー日: 2006/02/23
投稿数: 168
投稿日時: 2008-11-26 14:56
・すでにクライアントにレスポンスヘッダのステータスコード部が送信済みの場合は、
 後からステータスを変えることはできません
・return (ActionForward)map.findForward("err")の副作用は?
まさぷぅ〜
会議室デビュー日: 2008/10/21
投稿数: 2
投稿日時: 2008-11-26 16:54
ひろ@ya様へ

おっしゃるとおりステータスコードを設定する前にすでにレスポンスを返却していました。ものすごい凡ミスです。申し訳ありませんでした。
1

スキルアップ/キャリアアップ(JOB@IT)