2015-04-18 77 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爲你做路由。