ajax同步获取远程数据的方法比较——$.ajax与$.getJSON

今天项目中遇到了ajax远程请求数据的问题,一开始使用$.ajax获取不到数据,后来发现ajax默认是异步获取数据的,于是寻求同步获取的方法,最开始是这样的:

$.ajax({
				url: url,
				dataType: 'jsonp',
				async:false,
				success: function(response){
					if (response.error) {
						alert(response.error.message + '\n' +
							response.error.details.join('\n'));
					} else {
							feature = esrijsonFormat.readFeatures(response);
					}
				}
			});

上面设置了 async:false,可是实际执行过程中,依然是异步执行的,不知道是什么原因。后来采用 $.getJSON的方式,按如下进行同步获取:

$.ajaxSettings.async = false; //设置getJson同步
			$.getJSON(url,function(data){
				feature = esrijsonFormat.readFeatures(data);
		     });
			$.ajaxSettings.async = true; //设置getJson异步

这样就在程序执行过程中,同步获取到需要的数据。至于前面的$.ajax为什么在设置了同步的条件下依然异步执行,还不得而知。现将问题及两种方法记录于此,希望用$.ajax同步获取失败的可以试试$.getJSON,经实测是可行的。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
$.getJSONajax都是用于发送HTTP请求和获取服务器数据方法,它们在实现上有一些区别。 1. 语法:$.getJSON是jQuery库中的一个方法,用于发送GET请求并自动解析返回的JSON数据。它的语法是`$.getJSON(url, data, success)`,其中url是请求的URL地址,data是发送给服务器的数据,success是请求成功后执行的回调函数。 而ajaxJavaScript提供的一种通用的发送HTTP请求的方法,它的语法是`$.ajax(settings)`,其中settings是一个包含各种请求参数的对象,包括url、type(请求类型,如GET、POST等)、data(发送给服务器的数据)、success(请求成功后执行的回调函数)等。 2. 数据类型:$.getJSON方法默认解析服务器返回的JSON数据,并将解析后的对象作为参数传递给success回调函数。而ajax可以处理多种数据类型,包括JSON、XML、HTML等。 3. 自动解析:$.getJSON方法会自动解析返回的JSON数据,并将解析后的对象作为参数传递给success回调函数。而ajax需要手动处理服务器返回的数据,可以通过设置dataType参数指定返回数据的类型,然后在success回调函数中进行处理。 4. 请求类型:$.getJSON方法只能发送GET请求,无法发送POST请求。而ajax可以发送各种类型的请求,包括GET、POST、PUT、DELETE等。 综上所述,$.getJSON方法ajax的一个简化版本,专门用于发送GET请求并自动解析返回的JSON数据。而ajax是更通用的方法,可以处理各种类型的请求和返回数据

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值