ajax同步异步参数async

        开发项目开发过程中,需要将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等方法

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值