2017-02-24 48 views
0

我從Angular開始,完全失去了。Angular:處理重定向到登錄頁面

一開始,我打電話給一個簡單的Rest-GET請求。問題是,目標位於外部登錄頁面的後面。所以我的請求被重定向到外部頁面,我的應用程序失敗。

我想要的是打開此頁面我重定向到。登錄成功後,我應該重定向到第一個請求的頁面(但這應該由外部頁面完成,我猜)。

的到目前爲止我的代碼是不是真的先進,但在這裏它是:

var app = angular.module('webUI', []) 
app.controller('Rest', function($scope, $http) { 
    $http.get('https://test/rest/monitoring') 
     .then(function successCallback(response) { 
       $scope.rest = response.data; 
      }, function errorCallback(response){ 

      }); 
}); 

有一個簡單的角度功能我錯過了,會做什麼,我正在找?

編輯: 以下是錯誤消息我在瀏覽器控制檯中看到(鉻 - > F12):

從重定向「https://test/rest/monitoring」到「https://someExternalURL/internal/login?TYPE=somethingVeryLong」已被封鎖的CORS政策:否「訪問-Control-Allow-Origin'標題出現在請求的資源上。因此不允許原產地'null'訪問。

回答

0

您必須在$ location.path('/ someNewPath');中將您的重定向url設置爲successCallback函數。 您必須將$ location的依賴項注入到您的控制器中。

 var app = angular.module('webUI', []) 
     app.controller('Rest', function ($scope, $http, $location) { 
      $http.get('https://test/rest/monitoring') 
       .then(function successCallback(response) { 
        $scope.rest = response.data; 
        $location.path('/someNewPath'); 
       }, function errorCallback(response) { 

       }); 
     }); 
+0

感謝。但是,如何獲取我將重定向到的URL。在我的情況下,'/ someNewPath'並不總是相同的。我在哪裏可以提取我重定向到的網址? 另外,我嘗試了你的解決方案,只是如何發佈它,並期望重定向到/ someNewPath。它所做的只是將「#/ someNewPath」添加到我的實際URL中,而不是重定向到某處。 而且只有在我將該行添加到我的「errorCallback」後纔有效。 我編輯了我的第一篇文章,並從我的瀏覽器控制檯(Chrome - > F12) – kinglite

+0

添加了錯誤消息,您可以在App_Start文件夾的webapiconfig.cs文件中使用以下代碼行。 HttpConfiguration配置; var cors = new EnableCorsAttribute(「*」,「*」,「*」); config.EnableCors(cors); –

0

你應該用角路由, 明白爲什麼這裏https://www.w3schools.com/angular/angular_routing.asp 這裏一個很好的例子https://ui-router.github.io/ng1/tutorial/helloworld,一旦你配置你的路線,你可以這樣做:爲快速反應

var app = angular.module('webUI', []) 
app.controller('Rest', function($scope, $http) { 
    $http.get('https://test/rest/monitoring') 
     .then(function successCallback(response) { 
       $scope.rest = response.data; 
       $state.go('login'); 
      }, function errorCallback(response){ 

      }); 
}); 
+0

我不明白路由如何幫助我,因爲它似乎只適用於本地資源。但是,如果這是可能的,我怎麼能得到我將被重定向到的URL並在我的路由規則中使用它?就我所見,路由基於固定鏈路並打開本地資源。 – kinglite