1

我们正在开发一个使用 React 和 Mobx 的接口。我们有一个组件来激活用户帐户,其中包含发送到用户电子邮件的链接和代码:

https://mysite/activate?Code=6bgoh9n0uk7a84lc3s9e2lso5j

在组件中我们调用后端来验证代码是否有效并激活用户。在有效的情况下,后端返回用户和他的令牌。此令牌存储在 localStorage 中,然后我们重定向到主仪表板:

axios.get(`/user/activate/${code}`)
.then(action(response => {
   window.localStorage.setItem("myToken", JSON.stringify(response.data));
   window.location.href = "/dashboard";
}))
.catch(action(error => {
    console.log(error);
}));

在 Chrome 和 Mozilla Firefox 中,重定向是成功的,但在 IE 11 和 Edge 浏览器中,组件会再次呈现,这会导致代码被后端检查,我们在屏幕上指示代码不再有效。

我们做错了什么?

4

1 回答 1

1

Promise在 IE11 中你需要一个polyfill。更多细节在这里: https ://github.com/mzabriskie/axios/blob/master/UPGRADE_GUIDE.md#es6-promise-polyfill

于 2017-02-21T23:02:09.980 回答