ajax同步异步参数async
程序员文章站
2022-05-03 17:09:40
...
开发项目开发过程中,需要将ajax的返回值赋到全局变量中,然后在该页面其他地方引用,因为ajax异步的原因一直无法成功,需将async:false,使其变成同步的。
格式:
$.ajax({ type: 'POST', url: httpUrl, data: JSON.stringify(params), contentType: 'application/json', async: false, success: function(data){…},error:function(data){…}});
实例:
$.ajax({ type:"post", url:"getSwitch.do", data:data, async:false, success:function(data){ //登陆超时的处理 if(data=="timeout"){logoutFun();} if(data.split(",")[0]=="Y"){ var network=$("#network option:selected").val(); if(network == undefined || null==network || network == "") { temp = true; } } }, error: function(d){ if(d.responseText=="timeout"){logoutFun();temp= true;} alert("请求失败,可能是服务器或网络异常。"); } });
总结一下:
1.ajax默认所有请求都是设置为异步的,如果需要同步,则设为false
2.如果请求是异步的,不能在回调之外直接拿到返回的data
3.如果设为同步的话,会阻塞后面的代码,也就是说如果这个请求需要执行30秒,就必须等30秒执行完之后,才能继续执行下面的
4.同步不支持跨域请求和数据类型:’jsonp'请求
5.如果将请求设置为同步的话,则不支持延迟方法,不能使用延迟方法$.Deferred,只能使用success/error/complete来代替比如deferred.always()/$.when等方法
推荐阅读
-
jquery ajax 同步异步的执行示例代码_jquery
-
ajax 同步和异步XMLHTTP代码分析
-
同步和异步(promise,async,await)
-
vue中使用async、await和promise实现异步API的同步调用
-
vue 使用 async 和 await 实现异步 axios 同步化(实战案例:数据异步校验通过后,再执行保存)
-
vue 中使用 async/await 将 axios 异步请求同步化处理
-
微信小程序 ———— 异步请求中使用async/await实现同步请求
-
async await 就ajax因果调用解决方案(思路:以同步的思维解决异步的调用)
-
微信小程序中使用Async-await方法异步请求变为同步请求方法
-
jquery ajax 同步异步的执行 return值不能取得的解决方案