2015-10-17 80 views
0

相同的作品我有一個ASP.Net WebAPI2網站,有一個/令牌實現OWIN令牌服務。這項服務對我的網站來說工作得很好,我可以使用其他客戶端,並從我的電腦和Android手機上獲得預期的令牌。科爾多瓦項目爲unsupported_grant_type錯誤,但在瀏覽器

但是當我打電話從我部署了我的Android手機奇巧OS上的離子項目中的服務,我得到{"error":"unsupported_grant_type"}。它在同一個wifi上,所以我可以使用其他客戶端並使用它獲取令牌。

這裏是角碼,我用:

.service('LoginTokenService', ['$resource', function ($resource) { 
    function getToken(payLoad, fnSuccess, fnError) { 
     return $resource("http://192.168.1.104/token", {}, 
     { 
      "getAuthToken": { 
       method: "POST", 
       isArray: false, 
       headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, 

      } 
     }) 
    .getAuthToken(payLoad, fnSuccess, fnError); 
    } 
    return ({ 
     getToken: getToken 
    }); 

而且在我的WebAPI的代碼,我設置的選項app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);像下面

public void ConfigureAuth(IAppBuilder app) 
    { 

     app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); 

     // Mounts the middleware on the provided app with the options configured 
     // above 
     app.UseOAuthBearerTokens(OAuthOptions); 
    } 

另外,payLoad包含​​

因爲我對離子和卡爾多瓦比較陌生,所以我想知道是否有人遇到類似的問題。

+0

我建議你把你的編輯作爲一個答案,並接受它 –

回答

0

我想我知道這個問題。在我的網站,我用$.param(payload)發送的登錄信息到/令牌服務,但在jQuery在默認情況下,離子是不可用的,我刪除了。

我現在已經使用了$httpParamSerializerJQLike(payLoad)序列化的有效載荷和它現在的工作..