2015-03-21 3 views
0

Я делаю страницу входа с Spring MVC на сервере и JS & Ajax в клиенте. Я не знаю, что случилось, код сервера выполняется, но ничего не возвращает. login.htmlУспех Ajax не выполняется

<script type="text/javascript"> 
    $(function() { 
     $(".loguser").click(function() { 
      var user = $("#login").val(); 
      var pass = $("#pass").val();    
      $.ajax({ 
       method: "POST", 
       url : "${prefix}loginUser", 
       data : "username=" + user + "&password=" + pass, 
       dataType : "json", 
       success: function(data){ 
        if (data.res == "YES") alert("ok"); 
        else alert("NOPE"); 
       } 

      }); 
     }) 
    }) 
</script> 
    <table id="userData" class="center"> 

        <tr id="usernametr"> 
         <th><label for="user">Nombre de usuario: </label></th> 
         <th><input id="login" type="text" name="login" value="" 
          placeholder="Name" required /></th> 
        </tr> 
        <tr> 
         <th><br /></th> 
        </tr> 
        <tr> 
         <th><label for="pass">Clave de usuario: </label></th> 
         <th><input id="pass" type="password" name="pass" value="" 
          placeholder="Password" required /></th> 
        </tr> 

        <tr>       
         <th><button class="loguser">Acceder</button></th> 
         <th><input type="button" name="lost" 
          value="He perdido mi clave" /></th> 
        </tr> 
       </table> 

HomeController.java:

@RequestMapping(value = "/loginUser") 
    @ResponseBody 
    @Transactional 
    public String loginUser(@RequestParam("username") String username, 
      @RequestParam("password") String pass, HttpServletRequest request, Model model) { 
     logger.info("Trying to log in {} {}", username, pass); 
     if (username.length() > 3) { 
      logger.info("ok"); 
      return new String("[\"res\": \"YES\"]"); 
     } else { 
      logger.warn("nope"); 
      return new String("[\"res\": \"NOPE\"]"); 
     } 
    } 

Я tryiend возвращение EntityResponse тоже, но ничего изменить. Консоль Springs печатает информацию о регистраторе или предупреждает, но Firefox javascript консоль не делает.

+0

Как получилось, что ваш метод обработчика вызван, пока он связан с запросом GET, когда вы запускаете POST один с клиентской стороны! Не могли бы вы предоставить весь орган 'HomeController'? – tmarwen

+0

Вы знаете, что вы возвращаете 'NOPE' в обоих случаях? – RealSkeptic

+0

В HomeController ничего больше нет. Его обозначено как @Controller. @RealSkeptic LOL Да, я изменил его в сообщении, но в моем исходном тексте разный, я меняю его сейчас. – aSoler

ответ

0

Необходимо указать Requestmethod в контроллере, как

@RequestMapping (значение = "/ loginUser", метод = RequestMethod.POST)

Вы должны вернуть JSon значения в {} Подтяжки

+0

Nop, Это ничего не изменило. Он не выполняет функцию выполнения :(Я уже пытался это сделать. – aSoler

+0

ли это печатает журнал? Есть ли какие-либо ошибки? –

+0

Регистратор печатает, все в контроллере работает хорошо, проблема в том, что он не возвращает выполнение в Функция успеха. Пример из регистратора: INFO: es.ucm.reinvasion.HomeController - попытка входа в систему sdsadw rrasa INFO: es.ucm.reinvasion.HomeController - ok INFO: es.ucm.reinvasion.HomeController - Trying для входа в das asdasa WARN: es.ucm.reinvasion.HomeController - nope – aSoler

Смежные вопросы