Jquery не умеет вести себя точно в огненной лисе

0

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

Странно, этот код ajax отлично работает для браузера crome, но не работает в случае пожарной лисы. Может ли любой орган сказать мне, что мне нужно для достижения такой же функциональности. Таким образом, он становится независимым от браузера.

Код ajax здесь

<script type="text/javascript">
function doAjaxPost() {  
      // get the form values
      $.ajax({  
        type: "POST",  
        url: $("#login-form").attr("action"),  
        success: function(response){
            $('#sign-up').html(response);
        },  
        error: function(e){  
          alert('Error: ' + e);  
        }  
      });  
        event.preventDefault();
    }
</script> 

Код контроллера Spring находится здесь:

@RequestMapping(value = "/sign-in", method = RequestMethod.POST)
    public @ResponseBody String submitCustSignInForm(@ModelAttribute("model") Person model,
            HttpSession sess) {

        String response = "";
        Person person = null;
        if (sess.getAttribute("USER_INFO") == null) {

            person = tsService.login(model);
            if (person == null) {
                response = "User name or password does not match.";
            } else {
                response = "success";
                sess.setAttribute("USER_INFO", person);
            }
        }
        return response;
    }

В обоих случаях запрос ajax попадает в контроллер, но в случае crome он остается на той же странице и отображает сообщение об ошибке. Но в случае firefox он перемещается на другую пустую страницу, а затем печатает сообщение.

То, о чем я думал, может быть в случае с firefox "event.preventDefault();" не может остановить действие формы

Форма html находится здесь:

<form class="aui login-form"
     method="post" id="login-form" onsubmit="doAjaxPost()">
</form>

Код формы немного длиннее, поэтому не указывается весь код.

Теги:
spring

1 ответ

0
Лучший ответ

Вы смешиваете обработчик представления формы в стиле jQuery с ванильным html onsubmit(). Попробуйте изменить:

event.preventDefault();

к

return false;

В качестве альтернативы вы можете удалить onsubmit in для тега формы, связать прослушиватель с событием отправки в форме и использовать event.preventDefault().

  • 0
    благодаря быстрому ответу.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню