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;
}