2016-01-26 1 views
1

Я пытаюсь получить данные json из сервлета, из внешнего интерфейса я получаю правильный ответ, но каждый раз при вызове идет блок ошибок вызова ajax. Вот мой JS код:Не получить ответ успеха в ajax-вызове, каждый раз, когда вы идете на функцию ошибки

$(document).ready(function() 

{ 
    $("#submit").on("click", function() 
    { 

     userId = $("#userNameTxt").val(); 
     seqAns = $("#seqAnsTxt").val(); 
     seqQues = $("#seqQues").val(); 
     command = $("#_CMD").val() 
     alert(command); 
     $.ajax({ 
      type : "POST", 
      dataType : "json", 
      url : "/Inventory/InvController", 
      data : {_CMD : command, uid : userId, ques : seqQues, ans : seqAns}, 
      success : function(retVal) 
      { 
       alert("success"); 
       var test = $.parseJSON(retVal); 
       if(true) 
       { 
        $("#resetPwd").show(); 
       } 
      }, 
      error: function(error) 
      { 
       alert("error"); 
      } 
     }); 
    }); 
}); 

Вот мой сервлет Код:

boolean isSuccess = logHelper.performForgotPwdValidation(agentDetails); 

PrintWriter out = null; 

    JsonObject jsonObj = new JsonObject(); 
    try 
    { 
     jsonObj.addProperty("isValid", isSuccess); 

     response.setContentType("application/json"); 

     response.setCharacterEncoding("UTF-8"); 
     out = response.getWriter(); 
     out.write(jsonObj.toString()); 
     out.flush(); 
    } 
    catch (IOException e) 
    { 
     e.printStackTrace(); 
    } 
    finally 
    { 
     if(null != out) 
     { 
      out.close(); 
     } 
    } 

Во время работы каждый раз, когда он собирается функции ошибки вызова Ajax.

, пожалуйста, помогите, если я делаю что-то неправильно. Спасибо заранее.

+0

Вместо предупреждения («ошибка») почему бы вам не console.log (error) и добавить это на ваш вопрос? –

+0

ранее я также использовал console.log (ошибка). В conse я получаю это сообщение: Object {readyState: 4, responseText: " ↵ ↵ ↵ ↵ ↵ ↵», состояние: 200, его статус:„OK“} @Jake – Somnath

+0

Так код состояния 200 предполагает фактическую проводку работ смотрите ниже ответа и попробовать оборачивать ваши данные, как это сейчас. простой JS-объект, недействительный JSON. –

ответ

0

Ваш тип данных - JSON, но ваши данные - всего лишь объект JavaScript. Используйте JSON.stringify() вокруг данных, так что это действительные данные JSON. (Изменить на JSON.stringify ({_ CMD: команда, uid: userId, ques: seqQues, ans: seqAns}))

+0

По-прежнему его не работает ... есть ли какие-либо проблемы в моем сервлет-коде? @JakeRowsell – Somnath

+0

Возможно, стоит добавить теги Java или сервлета, поскольку я понятия не имею об этом. –

+0

После удаления dataType: «json», из моего кода JS и изменения response.setContentType («application/json»); response.setContentType («text/plain»); я могу перенаправить вызов на функцию возврата вызова, но это было бы здорово, если бы какое-либо тело могло дать мне знать, как отправить данные json из сервлета и получить из JS. – Somnath