我正在使用 NodeJS-ReactJS 同构应用程序,当我单击 a 时,Link我收到一条错误消息
Uncaught (in promise) Error: Request has been terminated
Possible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.
我听说过前两个原因(离线和 CORS)。错误是什么the page is being unloaded意思?它如何导致浏览器无法导航到需要的位置。
这有点奇怪,我想深究它.
我有一个页面,用户输入他们的电子邮件地址并单击按钮,然后我显示"您已注册!" 消息 - 简单.
为此,我有两条路线.主要路线和"注册"路线.
<Route name="app" path="/" handler={Main}>
<Route name="signed-up" path="signed-up" handler={SignedUp} />
<DefaultRoute handler={Signup} />
</Route>
Run Code Online (Sandbox Code Playgroud)
在第一页上,当用户输入电子邮件地址并单击按钮时,我会激活POST AJAX以在我的后端数据库中保存电子邮件地址(使用Axios软件包),当它完成后,我将转到"已注册"路由.
handleSubmit() {
var router = this.context.router;
var email = this.refs.email.getDOMNode().value;
this.refs.email.getDOMNode().value = '';
helpers.postSignupEmail(email).then((response) => {
// then display the signed up page
router.transitionTo("signed-up");
});
}
Run Code Online (Sandbox Code Playgroud)
现在,当我第一次输入我的页面的URL时
http://localhost:1338
Run Code Online (Sandbox Code Playgroud)
浏览器(Chrome,FireFox,Safari)似乎都将URL更改为
http://localhost:1338/#/
Run Code Online (Sandbox Code Playgroud)
很公平.在FireFox中,我输入一封电子邮件,然后点击提交按钮,一切正常并带我去
http://localhost:1338/#/signed-up
Run Code Online (Sandbox Code Playgroud)
但是,现在在Chrome上,当我点击提交时,它不会更改路线.实际上,在开发者控制台上,我看到了一个错误.

首先,为什么"帖子"请求被取消了?其次,当发生这种情况时,Chrome无响应.所以我刷新了页面,然后我得到了Chrome的"海军死亡屏幕".

现在,有趣的是,如果我将初始URL更改为
http://localhost:1338/?#/
Run Code Online (Sandbox Code Playgroud)
(在哈希前插入问号),然后Chrome上的工作正常.所以,它让我想知道它与我的路径路径或参数有关.
有任何想法吗?