ajax получить сообщение об ошибке ответа

Я использую ajax inisde на своей странице jsp. дойдя до сервлета, я хочу отправить ответ с сообщением. сначала я использовал "response.sendError (500," this is a test msg "); внутри своего сервлета, но когда я попытался получить сообщение об ошибке внутри функции ошибки ajax, я использовал xHR.responeText и получил строку html, которая содержала сообщение, но оно мне не подходит, я хочу получить только сообщение об ошибке. Я также пробовал setStatus (500) и contenttype - xml, но мне все равно не удалось получить сообщение об ошибке.

Как это может быть сделано? Я хочу отправить код ошибки номер 500, но каждый раз я хочу отправить его с другим сообщением, а затем прочитать его в функции обратного вызова ajax.

Заранее спасибо.


person user590586    schedule 01.05.2011    source источник


Ответы (3)


Предполагая, что я правильно понимаю ваш вопрос. Вы хотите получать сообщение об ошибке в виде простой строки без тегов html?

В этом случае вы должны написать текст в ответ и установить тип mime (contentType равным «text / plain»).

Так что-то вроде.

   PrintWriter writer = response.getOut();
   writer.print(errorMessage);
   response.setStatus(500);
   return

Когда вы это сделаете, убедитесь, что вы ничего не написали в ответ.

person Wes    schedule 01.05.2011
comment
@Wes: вот что я сделал: response.setContentType (text / plain; charset = UTF8); PrintWriter out = response.getWriter (); out.print (тестовый тестовый тест); response.setStatus (500); , но как мне получить тестовый тест сообщения из функции ошибок ajax? - person user590586; 01.05.2011
comment
@ Вы используете libray для Ajax? - person Wes; 01.05.2011
comment
@Wes: да, я использую библиотеку jquery - person user590586; 01.05.2011
comment
помогает ли этот вопрос stackoverflow.com/questions/2084484/? - person Wes; 02.05.2011

 error: function(error) {
                        targetNode.innerHTML = " text to display" + error;
 }

с jQuery

$.ajax({
        type: 'POST',
        url: url_,
        data: urlParams_,
        dataType: 'text',
        async: false,
        success: function(result_) {
            if (result_.length > 0 ){
                try{
                    result_ = $.parseJSON(result_);
                    result = result_;
                }catch (e){
                    alert(e);
                }
            }
        }
    });
person Ravi Parekh    schedule 19.05.2011

В вашем JS вам нужно прочитать xHR.status. Не xHR.responeText. xHR.status должен содержать 500.

person Gerben    schedule 01.05.2011
comment
Я знаю это, я спросил о сообщении. - person user590586; 01.05.2011