You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React应用Axios请求触发两次排查:非跨域、非严格模式

Axios请求触发两次的疑难排查

我遇到了一个奇怪的问题:通过Axios发起的AJAX请求会触发两次。查了大量资料,找到的类似问题方案都解决不了——要么我没用到对应的方法,要么不存在跨域场景,而且我也没开启Strict Mode,实在没辙了!

相关代码

根组件渲染代码:

root.render(
  //<React.StrictMode>
    <App />
  //</React.StrictMode>
);

表单提交相关代码:

handleSubmit = event => {
        event.preventDefault();
        const data = {
            name: event.target.elements.name.value
        };

        axios.post(`/api/v2/users/add`, {data})
            .then(res => {
                console.log(res.data.user['name']);
            });
    };

    render() {
        return (
            <div>
                <form onSubmit={this.handleSubmit}>
                    <label>
                        Person Name:
                        <input type="text" name="name"/>
                    </label>
                    <button type="submit">Add</button>
                </form>
            </div>
        );
    }

问题细节

事件会触发两次:第一次发送请求payload,第二次接收响应。这太奇怪了!我已经尝试了所有已知方法,比如改用onChange()存入state来获取name字段值,而非直接使用name: event.target.elements.name.value。这只是个30行左右的基础应用,我真不知道接下来该排查什么,是不是漏掉了什么明显的问题?

已排查的相关帖子(均无法解决)

  • 《Every axios request firing twice in react-redux app?》:我未使用跨域场景
  • 《Events firing twice inside axios interceptor》:不符合我的问题场景
  • 《React and Axios fires twice (once undefined, once successfully)》:我没有修改状态

内容的提问来源于stack exchange,提问作者Zak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 20:51:21