2015-04-18 38 views
0

大家好和遗憾,英语(如果你发现了一些错误),Angularjs:保持HTTP主体重定向后

我有一个问题:我在页面A和I调用返回一个Web服务JSON在体内后,我重定向到另一个页面B. 我的问题:重定向后,身体保存?用词,我可以获取或访问正文(如果正文包含JSON)?

Web服务:

app.service('LoginService', ['$http', function($http) { 
    this.retrieveUser = function(username, password) { 
     var url = app.baseURI + username+"/"+password; 
     return $http.get(url); 
    }; 

...

JS重定向

self.login = function(username, password){ 
      LoginService.retrieveUser(username, password) 
      .success(function (data) { 
       if(data.usuario.rol == "G") 
window.location.href="http://localhost:8080/Natureadventure/html/gerente/gestionarActividades.html"; 
      }).error(function(data){ 
       $scope.loginForm.password.$setValidity("password", false); 
      }); 
     }; 

谢谢!

回答

0

Angular是完全客户端的,所以除了在localStorage,cookies或sessionStorage中设置一些东西外,不会,你不能这样做。

解决方法是将您的Angular应用程序转换为单页应用程序;你永远不会真的改变网站的页面,但Angular可以通过像ui-routerngRoute这样的库来模拟网页更改(即内容和布局)。

这样做的缺点是,如果您要么使用丑陋的hashbang URL,要么启用html5Mode,如果刷新页面,则会中断HTML5Mode。解决这个问题的方法是a)坚持使用hashbang URL或b)让你的服务器将任何未知的请求重定向到你的index.html并让angular为你做路由。