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 回答