4

AngularJS を使用して開発された予約アプリケーションがあり、さまざまなページを通じて予約するユーザーの詳細を構築しています。これらの詳細は、SessionStorage を使用して保存されます (LocalStorage は避けたい)。

ユーザーが支払いページに到達したら、REST 呼び出しを使用して PayPal トークンを生成し、PayPal にリダイレクトします。

このリダイレクトに使用しているコードは次のとおりです。

window.location.replace("https://www.sandbox.paypal.com/checkoutnow?useraction=commit&token=XXX&ul=0#/checkout/login");

PayPal から確認ページに戻ると、SessionStorage の内容はクリアされていますが、これはモバイル デバイスでのみ発生するようで、デスクトップの Chrome では複製できません。

SessionStorage がクリアされるのはなぜですか?

私の理解では、新しいページを開いているわけではないため (リダイレクトしているだけです)、状態を保持する必要があります。私が読んだドキュメントには、ウィンドウが閉じられると SessionStorage がクリアされると書かれていますが、これはリダイレクトと変わらないのでしょうか?

戻り時に SessionStorage を保持しながら PayPal にリダイレクトする方法はありますか?

4

1 に答える 1

0

項目を SessionStorage に追加し、location.replace を使用して PayPal に移動する簡単なテスト アプリケーションを作成しました。これにより、アプリケーションの別のページに戻りました。

その結果、SessionStorage が永続化されました。

SessionStorage をクリアしていたアプリケーションに何らかのコードがコミットされていたことが判明し、謎は解決しました。

于 2016-07-25T08:01:41.077 に答える