1. ホーム
  2. angularjs

[解決済み] AngularJS: URLのクエリパラメータをクリアするには?

2022-06-04 13:45:25

質問

私のAngularJSアプリケーションは、ユーザーのLinkedInプロフィールにアクセスする必要があります。これを行うには、コールバックのredirect_uriパラメータを含むLinkedInのURLにユーザーをリダイレクトする必要があり、LinkedInにユーザーを私のウェブアプリにリダイレクトするように伝え、URLに"code" クエリーパーマを含める必要があります。これは伝統的な Oauth 2.0 フローです。

LinkedInがユーザーを次のURLにリダイレクトする以外は、すべてうまくいきます。

http://localhost:8080/?code=XXX&state=YYY#/users/123/providers/LinkedIn/social-sites

を削除したいのですが ?code=XXX&state=YYY を削除したいと思います。LinkedInのリダイレクトで受け取ったクエリパラメータをユーザーが見る必要はありません。

試しに $location.absUrl($location.path() + $location.hash()).replace() を試してみましたが、クエリパラメータをURL内に保持することになります。

また、クエリパラメータ、例えば "code" を抽出することができません。 ($location.search()).code . 上記のURLの#の前に?があることが、Angularを騙しているような気がします。

どうすれば解決するのでしょうか?

結局、AngularJSのフォーラムから回答を得ることができました。参照 このスレッド をご覧ください。


リンク先は Google Groups のスレッドですが、読みづらく、明確な回答はありません。 URL パラメータを削除するには

$location.url($location.path());