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

相关推荐
MomentYY几秒前
AI 到底是“懂”,还是在“猜”?
前端·人工智能·ai编程
鹏毓网络科技2 分钟前
Cursor Rules 文件配置实战:3 个隐藏参数让我每月少写 40% 样板代码
前端·github
没烦恼3014 分钟前
无痕模式下 HTTP\-First 拦截引发的“页面刷新”误判
前端
文心快码BaiduComate8 分钟前
从个人提效到组织提效:Comate辅助构建自我进化的AI研发系统
前端·程序员
hunterandroid1 小时前
Compose 状态管理:remember、rememberSaveable 与状态提升
前端
星栈1 小时前
Dioxus 接数据库最容易写歪的 3 个地方:sqlx + SQLite 怎么接才顺
前端·rust·前端框架
晴虹1 小时前
vue3-scroll-more:横向滚动条-元素或页签过多滚动显示处理的组件
前端·vue.js
代码搬运媛1 小时前
Claude 全栈开发专用 Rules 配置
前端
PedroQue991 小时前
uni-router v1.7.0重磅更新:守卫重定向自由掌控
前端·uni-app
逸铭1 小时前
Day 4:登录与 Token——桌面端怎么存密钥
前端·客户端