reactjs - React onClick 事件调用 API 两次
问题描述
我有一个简单的 React 组件、一个按钮和一个调用 API 端点的函数。当我单击按钮时,API 内部事件被调用两次。我在 stackoverflow 上阅读了很多帖子并尝试了所有帖子,但仍然有同样的问题。此外,即使我可以在 db 中为每个调用看到 2 条记录,但在 Google Dev 工具中仅显示 1 个已连接的 xhr 调用。
我已经尝试传递函数引用而不是函数本身,甚至通过 () => { } 调用函数,但结果相同。
<button type="button" onClick={ this.onSubmitForm }>Save</button>
onSubmitForm = (e) => {
// e.preventDefault();
const response = axios.post('http://localhost/util/index.php/api/record', {name: 'test'} );
console.log(response) // Even this line is logged once in console ;
}
解决方案
既不是您的反应应用程序也不是 API,它是浏览器本身。看看这个https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
一个预检请求,让服务器知道在发出实际请求时将使用什么 HTTP 方法。
推荐阅读
- ubuntu - CC3200 LaunchXL 与 ubuntu 和 VSCODE
- javascript - 是否可以使用 shortid 生成 3 个字符长的唯一 ID?
- gnuplot - 打印带有描述列和多行的 cvs
- flutter - Flutter - 文本表单字段输入格式为 de(德语)语言环境
- r - 修复错误:手动比例中的值不足。需要 2 个,但只提供了 1 个。在 R 中
- java - 无法发出新请求,因为之前的响应仍处于打开状态:请在改造中调用 response.close()
- python - 将来自一个文件的特定区域中的数据与来自 awk、bash 中的第二个文件的数据追加
- c# - 使用文件保护程序保存后无法打开excel文件
- c# - 以一种形式实现两个版本的窗口关闭事件?C#
- wordpress - register_rest_route 没有向我传递回调函数参数