2016-04-07 60 views
1

你們會幫我創建一個angularjs POST請求版本:角度發佈獲取訪問令牌失敗

https://drive.google.com/file/d/0B6weCtBHDZU1eUFWcHpNNE5WTVk/view?usp=sharing

這個想法是獲得一個訪問令牌,所以我可以安全地消費一些休息apis。 我試過很多次通過角度,我分析了每一個請求,我失敗了,我總是發現請求正文是空的。

這是我嘗試過的一些角碼的例子。

var app = angular.module("app", []); 
    app 
     .controller(
       "MyController", 
       function($scope, $http) { 
        $scope.obtain_token = function() { 
         var payload = "grant_type=password" + "&username=roy" + "&password=spring" + 
          "&client_id=clientapp"+ 
          "&client_secret=123456"; 
         var r = $http.post('http://localhost:8080/oauth/token',payload); 
         r.success(function(response){ 
          console.log(response.access_token); 
         }); 
        }; 
       }); 

回答

1
function Hello($scope, $http) { 

    var config = { 
      headers : { 
       'Accept': 'application/json', 
       'Content-Type': 'application/x-www-form-urlencoded', 
       'Authorization': 'Basic ' +btoa('clientapp:123456654321') 
      } 
     } 
    var payload ="password=spring&username=roy&grant_type=password&scope=read%20write&client_secret=123456&client_id=clientapp"; 

    $http.post('http://localhost:8080/oauth/token',payload, config). 
    success(function(data, status, headers, config) { 
     $scope.data = data; 
    }). 
    error(function(data, status, headers, config) { 
     $scope.data = data; 
    }); 
} 
+0

你還需要說明你修改了什麼是錯的,什麼。不僅僅發佈功能。 (並將其格式化得更好) –

+0

他忘記了標題,可以看到他附加的谷歌驅動器中的圖像 –

+0

adsl Le建議的代碼工作正常,並且它適用於相同的應用程序。問題是,我試圖消費的資源是託管在** localhost:8080 **,我試圖從** localhost:8090 **託管的另一個應用程序請求它。這可能來自前臺 –

0
sample angular-1 code.. 
---------------------------------- 
var payload = { 
"grant_type":"password", 
"username"="roy", 
"password"="spring", 
"client_id"="clientapp" 
"client_secret"="123456" 
} 

$http.post("http://localhost:8080/oauth/token", payload).success(function (result) { 
       console.log(result); 
      }).error(function(error) { 
       console.log("error", error); 
      }); 

and sample api c# 
--------------------- 
[HttpPost] 
     [Route("")] 
     public HttpResponseMessage SaveArchive([FromBody] JObject saveRequest) 
     { 
      var log = LogManager.GetCurrentClassLogger(); 
      try`` 
      { 
       return "your success message"; 
      } 
      catch (Exception ex) 
      { 

       return ex; 
      } 
     }