ajax同步执行async:false无效的解决方法

无效的情况:

javascript 复制代码
  function ManHourCheck() {
      var StartDate = $("#StartDate").val();//日报日期
      var EndDate = $("#EndDate").val();//完成日期
      var UserID = $("#UserID").val();//员工ID

      $.ajax({
          async: false,//加了这一行也没用!!!!!!!!!!!!!!!
          type: "POST",
          url: "/Daily/ManHourCheck",
          data: {
              "StartDate": StartDate,
              "EndDate": EndDate,
              "UserID": UserID,
          },
          success: function (result) {
              if (result.success) {
                  return true;//取不到!!!!!!!!
              }
              else {
                  layer.alert(result.message, { area: ['500px', ''] });
                  return false;//也取不到!!!!!!!!
              }
          }
      });
  }

修改为:

javascript 复制代码
  function ManHourCheck() {
      var StartDate = $("#StartDate").val();//日报日期
      var EndDate = $("#EndDate").val();//完成日期
      var UserID = $("#UserID").val();//员工ID

      var check = false;//看这里!!!!!!!!!!!!!
      $.ajax({
          async: false,
          type: "POST",
          url: "/Daily/ManHourCheck",
          data: {
              "StartDate": StartDate,
              "EndDate": EndDate,
              "UserID": UserID,
          },
          success: function (result) {
              if (result.success) {          
                  check = true;//看这里!!!!!!!!!!!!!
              }
              else {  
                  layer.alert(result.message, { area: ['500px', ''] });     
                  check = false;//看这里!!!!!!!!!!!!!
              }
          }
      });

      //看这里!!!!!!!!!!!!!
      if (check == true) {
          return true;
      }
      else {
          return false;
      }
  }

说明:

不要在ajax的success里面做 return 值!!!取不到的!!!

②用个变量去接 ajax的return 值, 然后 return 这个变量!!!就行了

③再不行的话,把ajax的return之后的操作的function写在success里.... 不推荐


其他参考一下这个: https://blog.csdn.net/qq_28938475/article/details/82800656

相关推荐
卷帘依旧3 小时前
React Fiber介绍
前端
研☆香3 小时前
es6的新特性介绍
前端·ecmascript·es6
peepeeman4 小时前
vue组件透传
前端·javascript·vue.js
镜宇秋霖丶4 小时前
2026.5.12@霖宇博客制作中遇见的问题
前端·vue.js·elementui
醉逍遥neo4 小时前
mac新电脑-前端开发配置
前端·macos·ghostty
白嫖叫上我4 小时前
Vue3封装主题色完善版
前端
a1117764 小时前
细胞结构实验室(react 开源)
前端·javascript·开源·html
aaaak_4 小时前
PDD 直播间 评论 , wss hex Protobuf 解析流程分析学习
java·前端·学习
ikoala5 小时前
用了几周明基 RD280UG,我终于明白程序员为什么需要一台“专用显示器”
前端·后端·程序员
文心快码BaiduComate5 小时前
Comate搭载DeepSeek-V4
前端·后端