ajax之 同步 异步

本文探讨了Ajax默认的异步特性导致的外部无法获取success中数据的问题,并通过设置async参数为false来实现同步请求,确保外部js可以正确捕获返回结果。示例展示了设置async为false前后不同的输出效果。
摘要由CSDN通过智能技术生成

实际项目中 ajax 是非常常用的 ,但是ajax 默认是异步请求。
ajax 的 success 方法和调用ajax 的js并不是同一个工作域,导致success 中的返回结果 外层js无法获取,要想实现这一点,需要用到ajax的async参数,具体使用方法如下:

添加async参数前效果:
不写 async 时,默认其值为 true;

	var testreturn = "无数据";
	$.ajax({
		type:"get",
		dataType:"json",
		url:"../test/url?id="+id,
		success:function(data){
			console.log(data);
			testreturn = data;
		}
	});
	console.log(testreturn);

输出结果为:

测试数据
无数据

添加async参数后效果:

	var testreturn = "无数据";
	$.ajax({
		type:"get",
		dataType:"json",
		async:false,
		url:"../test/url?id="+id,
		success:function(data){
			console.log(data);
			testreturn = data;
		}
	});
	console.log(testreturn);

输出结果为:

测试数据
测试数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值