2016-04-15 27 views
0

oauth認証を使用してapiをmvcサイトに接続したいと思います。これのために 、私は以下のようにhttp要求を通してアクセストークンを送る必要があります。私がリクエストヘッダに設定しながらhttpリクエストとしてカスタムアクセストークンを送信

addPostComment: function addPostComment(postid, UserId, comment, accessToken) { 

       var request = $http({ 
        method: "post", 
        url: apiPath.addPostComment, 
        data: { 
         SocialPostId: postid, 
         CommentDescription: comment, 
         CommentedUserId: UserId, 
         CommentedDate: new Date() 
        }, 
        params: { 
         action: "post" 
        },     
        beforeSend: function (xhr) { 

         xhr.setRequestHeader('Authorization', 'bearer ' + accessToken); 
        } 
       }); 
       return (request.then(handleSuccess, handleError)); 
      } 

パラメータaccessTokenはvalue.butている、それは常にAuthrizationは言う:ベアラは未定義。

誰でもこのコードで何が間違っていると言えますか?

+0

あなたが直接ヘッダを言うことができるかもしれませ:{ '認証': 'ベアラ' + accessToken}を代わりにそれらを追加するbeforeSend ... –

+0

ます。http: //stackoverflow.com/questions/22140591/what-is-the-equivalent-of-jquery-ajax-beforesend-in-angularjs私が理解する限り、インターセプタなしでangularjs "$ http"でbeforeSendを使用することはできません。 –

答えて

0
$http({ 
     method: "post", 
       url: apiPath.addPostComment, 
       data: { 
        SocialPostId: postid, 
        CommentDescription: comment, 
        CommentedUserId: UserId, 
        CommentedDate: new Date() 
       }, 
       params: { 
        action: "post" 
       }, 
     headers: { 
     'Authorization': 'bearer ' + accessToken 
     } 
    }); 
あなたはこのようなHTTPリクエストを送信することはでき

...

+0

はい、うまくいきます。しかし、私は送信する前に、ヘッダーを更新したいので、このメソッドを使用しています。このコードでは、apipathは一定です。 。{ 'accessToken'、 'apiPath'(angular.module( "試験")定数:関数(XHR){xhr.setRequestHeader(」: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1laWQiOiIxIiwidW5pcXVlX25hbWUiOiJzdXBlcmFkbWludX" 私はこの定数とbeforeSendなどのサービスで使用されるにaccesstoken設定した場合私が定数トークンを使用していると、なぜそれが動作しているのかわかりません。 – Lalitha

+0

こんにちはAdem、実際に私はconst bearerTokenを宣言しました。= bearerToken =私が同じメソッドをgetメソッドで使うのであれば、それはうまくいきません。httpリクエストは、Bearer undefinedとして許可を送ります。これを解決するには – Lalitha

+0

ヘッダーを更新する場合は、サービスを使用してアクセストークンを取得し、コード内のメソッドを呼び出すことによってアクセストークンを取得します。 あなたのサービスを依存関係として追加すると、あなたの問題は解決します。更新されたアクセストークンがすべて得られます。あなたの要求.. –

関連する問題