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

JQuery发起POST API请求时显示load spinner加载动画的实现咨询

实现步骤
  • 第一步:先在页面中添加加载spinner元素,默认设置为隐藏状态,示例如下:
<div id="loading-spinner" style="display:none; position: fixed; top: 50%; left: 50%; transform: translate(-50%,-50%); z-index: 9999;">
  <!-- 此处可替换为你自己的加载动画资源,比如GIF图或者CSS动画效果 -->
  加载中...
</div>
  • 第二步:修改原有JS代码,调整点如下:
    1. 点击按钮后立即显示spinner
    2. 补全fetch的POST请求配置(原有代码默认是GET请求,不符合需求)
    3. 无论请求成功失败,结束后都隐藏spinner
    4. 修正alert弹窗和页面刷新的执行顺序

修改后的完整代码:

$('#add').click(function() {
  // 点击按钮后立即显示加载动画
  $('#loading-spinner').show();

  fetch("你的实际业务请求地址", {
    method: 'POST', // 声明为POST请求
    headers: {
      'Content-Type': 'application/json',
      // 如有CSRF Token等校验头可在此处添加
    },
    body: JSON.stringify({
      // 此处填写你需要提交的请求参数
    })
  })
  .then(response => response.json())
  .then(result => {
    // 原有1250ms延迟如果是为了让用户看清加载动画可以保留,不需要可以直接删掉setTimeout包装
    setTimeout(function() {
      // 隐藏加载动画
      $('#loading-spinner').hide();
      alert("Item has been added successfully");
      location.reload();
    }, 1250);
  })
  .catch(error => {
    console.log('error', error);
    // 请求报错时也要隐藏加载动画,可根据需要加错误提示
    $('#loading-spinner').hide();
    alert('添加失败,请稍后重试');
  });
});

注意:如果你不需要1.25秒的延迟效果,直接去掉setTimeout包装,把里面的逻辑直接放到then的回调里即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:45:03