2011-12-29 3 views
5

Spring MVCコントローラの検証エラーの場合、私はカスタムヘッダーエラーを応答ヘッダーに設定します。私はFirefox 3.5のそのヘッダにアクセスすることができます。しかし、IE 8ではありません。 Jqueryクライアントにカスタムエラーメッセージを表示する正しい方法を教えてください。IE 8でgetResponseHeaderが返される

var jqxhr=$.post("saveAcc.htm",{ data: data}); 

    jqxhr.success(function() { 
     alert("Saved"); 
    }); 

    jqxhr.error(function(thrownError){ 
     fnSetError(jqxhr.getResponseHeader('error')); 
     alert(jqxhr.getAllResponseHeaders()); //returns empty 
     //alert('responseText '+ thrownError.responseText); 
     alert(jqxhr.getResponseHeader('error')); //return null      
     oTable.fnReloadAjax(); 
    }); 
+0

をIE8のjquery $ .ajaxに関するバグレポート。いくつかの修正があります。 – joao

答えて

0

JSエラーハンドラ関数を呼び出す場合は、サーバーで例外をスローします。

また、あなたは500または他のいくつかのエラー状態

response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); 
//response.setStatus(500); 

にはhttpStatusを設定することができますしかし、私はあなたのアプローチが間違っていると思います。検証エラーはアプリケーションエラーではなく、成功メッセージのエラーを処理する必要があります。

jqxhr.success(function(data) { 
    if(data['validationMessages'].length > 0) { 
     //deal with the validation issues 
    } 
}); 

これが役立つ可能性があります、http://forum.jquery.com/topic/jquery-ajax-ie8-problemこの:私はこのことができます場合は知っているが、これを試してみていないhttp://outbottle.com/spring-3-web-mvc-exception-handling-incorporating-ajax/

関連する問題