Angularjs $ http.get не работает в новой версии Firefox - PullRequest
0 голосов
/ 28 июня 2018

Angularjs $ http.get не запускается при использовании Firefox v50 и выше.

Из функции Angularjs, приведенной ниже, всегда возвращается «result is 2», а sysout вообще не печатает, что означает, что метод контроллера Spring не вызывается каждый раз. Нет ошибки на консоли браузера, а также на стороне сервера. Есть ли какое-то решение для этого?

Когда я нажимаю на ссылку www.xxxx.com/api/checkSession, он отображает 2 в браузере, но не вызывает метод CheckSession Spring.

Я решил проблему с помощью POST. Пожалуйста, проверьте мой ответ ниже.

CheckSession.js

this.checkSession = function(){
    var deferred = $q.defer();
    $http.get('/api/checkSession').then(function(response) {
        result = parseInt(response.data);
        if(result==2){
            jAlert("Your Session is Expired!",null,function(){ 
            });
        } else{
            deferred.resolve();
        }
    });
    return deferred.promise;
};

SessionController.java

@RequestMapping(value = "/checkSession", method = RequestMethod.GET)
public @ResponseBody int checkSession(HttpServletRequest httpRequest) {
    int status = 0;
    if (httpRequest.getSession().getAttribute("email") != null) {
        status = 1;
    } else {
         System.out.println("Email"+httpRequest.getSession().getAttribute("email"));
        status = 2;
        if (httpRequest.getSession() != null)
            httpRequest.getSession().invalidate();
    }
    return status;
}

1 Ответ

0 голосов
/ 29 июня 2018

Наконец, я решил проблему, используя метод POST вместо метода GET в AngularJS и методе контроллера Spring. Теперь метод Spring вызывается каждый раз.

Но я не знаю, почему метод $ http.get не вызывает метод контроллера Spring, а получение результата всегда 2 в AngularJS mehood. Пожалуйста, ответьте, если кто-нибудь знает это. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...