私は提出しています...
現在の動作:
こんにちは、みんな。
アポストロフィを含むURLの$ locationサービスのエラーを修正するために作成したPRでの議論の後、 @ gkalpakは、URLの
詳細については、PRを参照してください。 https://github.com/angular/angular.js/pull/16098
期待される/新しい動作:
デコードされていないURLとデコードされたURLは、$ locationサービスを使用して機能する必要があります
Angularバージョン: 1.x。
ブラウザ:すべて
他に何か:
それを修正する方法
src / ng / browser.jsには、この検証を行う関数fireStateOrUrlChangeがあります
if(lastBrowserUrl === self.url()&& prevLastHistoryState === cachedState){{
戻る;
}
主な問題は、self.url()をlastBrowserUrlと比較していることのようですが、lastBrowserUrlは、常に同じエンコーディング/デコーディングであるとは限らず、異なるソースから設定できます。
@jbedard 、実装の詳細については考えていませんでした。 私は最終結果を参照していました:grin:
@dmartresこれが1.7.3でもまだ問題であるかどうかを確認できますか? aee7d53a6b5d3d7bc0a1124fd3df9b263777e72e(修正#16592)がこれを修正した可能性があると思いますか?
ブラウザ<a href>
を使用してこれを部分的に修正し、いくつかの主要な領域でURLを正規化しました(https://github.com/angular/angular.js/commit/e68697e2e30695f509e6c2c1e43c2c02b7af41f0、https://github.com/ angle / angular.js / commit / 2f72a69ded53a122afad3ec28d91f9bd2f41eb4f)。 ただし、この方法ですべてを正規化するブラウザはありません。 これを本当に修正するには、自分で正規化を実装する必要があります。
その正規化を手動で行うためにPOCを
これらの理由から、これを「修正しない」状態にします。
最も参考になるコメント
ブラウザ
<a href>
を使用してこれを部分的に修正し、いくつかの主要な領域でURLを正規化しました(https://github.com/angular/angular.js/commit/e68697e2e30695f509e6c2c1e43c2c02b7af41f0、https://github.com/ angle / angular.js / commit / 2f72a69ded53a122afad3ec28d91f9bd2f41eb4f)。 ただし、この方法ですべてを正規化するブラウザはありません。 これを本当に修正するには、自分で正規化を実装する必要があります。その正規化を手動で行うためにPOCを
これらの理由から、これを「修正しない」状態にします。