3

$httpの JSONP 関数を使用した JSONP 呼び出しの基本的なセットアップは次のとおりです。

var authenticatedUrl = authenticateUrl("http://example.com/getStuff&callback=JSON_CALLBACK");
return $http.jsonp(authenticatedUrl).then(function (response) {
  ...
}

問題は、私の HMAC オーセンティケーターが URL に基づいてハッシュを作成し、callback=JSON_CALLBACKangular が実際のリクエストを行うまでに、URL がangular.callbacks._0コールバック パラメータとして変更され、認証ハッシュが無効になることです。

この JSONP リクエストに使用される実際の URL にアクセスするにはどうすればよいですか?

angular.callbacks._0私の調査によると、インターセプターがこれに対応する方法のようですが、コールバックを持つ URL を持つオブジェクトを見つけることができないようです。

4

1 に答える 1

0

私が正しく理解していれば、あなたはHawk - Single URI Authenticationのようなものを使用しています。これは、URLに添付する必要があるトークンを取得することであり、トークンはその正確なURLに対して有効です.

あなたが抱えている問題は、角度自体ではなく、すべてのjsonpフレームワークが機能するはずの方法です。

JSONPをフォークしてこの動作を追加するか、JSONP を手動で実行することをお勧めします。

var i = 0;
function call_endpoint(callback) {
    i++;
    var url = "http://example.com/getStuff&callback=callback_" + i;

    //append the token here, or call your endpoints to fetch the endpoint.

    window["callback_" + i] = function (data) {
      delete window["callback_" + i]; 
      callback(data);
    };

    script = document.createElement('script');
    script.src = url;

    var target = document.getElementsByTagName('script')[0] || document.head;
    target.parentNode.insertBefore(script, target);
}
于 2013-12-27T18:49:45.957 に答える