2

JavaサーブレットからのAjaxエラー操作にエラーメッセージを設定したいと考えています。

request.setAttribute(BreezeWebConstants.ERROR_MESSAGE, errMsg);
response.setStatus(HttpServletResponse.SC_FORBIDDEN);

error : function(jqXHR, textStatus, errorThrown) {
alert("Move Ticket Error - " + textStatus);
console.log("Move Unknown Ticket Error");
}

textStatus は Jquery で事前定義されていますが、Java サーブレットでカスタム エラー メッセージを設定し、このエラー関数で取得する必要があります。どうやってするの?

ありがとう。

4

2 に答える 2

3

エラー メッセージをプレーン テキストまたは XML または JSON として応答本文に書き込むだけです。

プレーンテキストを想定した例を次に示します。

response.setStatus(HttpServletResponse.SC_FORBIDDEN);
response.setContentType("text/plain;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(errMsg);

次のように抽出できます。

var message = jqXHR.responseText;

jQuery には XML と JSON の解析も組み込まれているため、同様に簡単です。

于 2012-12-10T13:33:35.773 に答える
1

$.ajaxSetup()を使用して、次のような正しいエラーを取得してみてください。

$(function() {
    $.ajaxSetup({
        error: function(jqXHR, exception) {
            if (jqXHR.status === 0) {
                alert('Move Ticket Error - Not connect.\n Verify Network.');
            } else if (jqXHR.status == 404) {
                alert('Move Ticket Error - Requested page not found. [404]');
            } else if (jqXHR.status == 500) {
                alert('Move Ticket Error - Internal Server Error [500].');
            } else if (exception === 'parsererror') {
                alert('Move Ticket Error - Requested JSON parse failed.');
            } else if (exception === 'timeout') {
                alert('Move Ticket Error - Time out error.');
            } else if (exception === 'abort') {
                alert('Move Ticket Error - Ajax request aborted.');
            } else {
                alert('Uncaught Move Unknown Ticket Error.\n' + jqXHR.responseText);
            }
        }
    });
});

ajax 呼び出しを行うだけです。エラーが発生した場合は、アラートが表示されます。

于 2013-01-28T13:31:50.987 に答える