会话存储在window.location.replace上丢失

时间:2016-07-22 12:15:53

标签: javascript angularjs session-storage sessionstorage

我有一个使用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?

1 个答案:

答案 0 :(得分:0)

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

结果是SessionStorage一直存在!

原来一些代码已经提交给正在清理SessionStorage的应用程序,神秘解决了。