window.location.replace 会话存储丢失

Session Storage lost on window.location.replace

我有一个使用 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会被清空?

我的理解是,因为我没有打开新页面(我只是重新定向),所以应该保留状态。我读过的文档说当 window 关闭时 SessionStorage 被清除 - 这与重定向没有区别吗?

有没有办法在 return 上保留 SessionStorage 的同时重定向到 PayPal?

我创建了一个简单的测试应用程序,它向 SessionStorage 添加了一个项目并使用 location.replace 转到 PayPal,这使我返回到应用程序中的另一个页面。

结果是SessionStorage被持久化了!

原来一些代码已提交给正在清除 SessionStorage 的应用程序,谜团解开了。