1

サイトで独自の認証フローを持つサードパーティ サービスを使用しています。パスワードをリセットする機会があります。この機能には、次の流れがあります。yoursite.com/#xxx=123456 のリンクが記載されたメールになります。

このページに入ると、サードパーティのライブラリがダウンロードされ、いくつかの初期化プロセスの後、#xxx=\d+ フラグメントのロケーション URL がチェックされ、いくつかの ajax 呼び出しが行われ、いくつかの UI モーダルが表示されます。

var hashKeyElements = window.location.toString().match('#xxx=(.*)'); 

彼らのやり方を変える方法はありません。そしてここに問題があります - Angular は yoursite.com/#xxx=123456 を yoursite.com/#/xxx=123456 に書き換え、その後正規表現が一致しません

URL に二重の # を作成しようとしましたが、エラーが発生します。

更新: angular 1.2.4 を使用すると、これは SPA ではなく、すべての関連リンクを防止して pushState 経由でプッシュするべきではありません

ありがとうございました

4

1 に答える 1

0

アップデート

クライアント側のルーティングを使用していないと述べた後、もう一度確認したところ、angular.js (すべてのバージョン) は、$locationProviderまたは使用しない限り、URL にハッシュ (/#/) を追加しない$routeProviderようですhtml5Mode=false。`


クライアント側のルーティングまたは $location を使用する場合:

html5Mode を使用する必要があります - docs :

app.config(function($locationProvider){
  $locationProvider.html5Mode(true)
})
于 2014-01-16T17:16:21.923 に答える