`

实现$.getJSON的同步请求

阅读更多
----问题描述:
在getJSON方法体里面可以获取到数据,但总是不能在外部获取,即使定义了一个全局变量还是无法获取。
----解决方法:
在外部定义一个全局变量,如:
var myLatlngs=[];

在获取数据的地方设置
//示例:经纬度坐标转换
function  getMyData(coordType,latlngs){
  myLatlngs=[];
  $.ajaxSettings.async = false;//设置为同步
  $.getJSON("http://192.168.20.33:83/coordconvert/json/"+coordType+"
                /"+latlngs+"/callback=?",function(data){
	for ( var f = 0; f < data.length; f++) {
		var lonlat={lon:data[f].lng,lat:data[f].lat};
		myLatlngs.push(lonlat);
	}
     });
}

这样还是无法获取吗?
你可以这样做:

setTimeOut(function(){
     getMyData(1,"30.684545,103.7845434");
     alert(myLatlngs.length);//提示数字等于1
},2000);
分享到:
评论

相关推荐

    $.getJSON同步异步问题1

    然而,当涉及到多个异步请求时,特别是在$.getJSON这样的Ajax操作中,可能会出现数据混乱的问题。$.getJSON是jQuery提供的一个方便的方法,用于获取JSON格式的数据,它默认是异步执行的。 $.getJSON的异步特性可能...

    浅析$.getJSON异步请求和同步请求

    接着,作者修改了代码,通过在请求开始前设置$.ajaxSettings.async为false,强制$.getJSON同步执行,然后在数据处理完毕后,重新将$.ajaxSettings.async设置为true,恢复异步执行模式。这样可以保证数据按照预期加载...

    jQuery中$.ajax()和$.getJson()同步处理详解

    在$.ajax()中,通过将async设置为false,可以实现同步请求。需要注意的是,由于同步请求会锁定浏览器,因此必须谨慎使用,以免导致用户体验下降。 在处理异步请求时,可以利用$.ajax()的success和error回调函数来...

    Ajax跨域查询完美解决通过$.getJSON()实现

    当结合跨域请求时,$.getJSON()会配合JSONP模式来实现跨域请求。 JSONP(JSON with Padding)是解决跨域请求的一种方案。它的核心思想是利用`&lt;script&gt;`标签可以跨域的特性,通过动态创建一个`&lt;script&gt;`标签,并将其...

    jQuery 封装Ajax

    jQuery的Ajax方法主要包括`$.ajax()`, `$.get()`, `$.post()`, `$.getJSON()`等。这些方法都提供了一种优雅的方式来发送和接收数据,同时提供了丰富的配置选项来处理各种情况。 ### 1. `$.ajax()` `$.ajax()`是...

    $.ajax()方法详解

    此外,还有一些其他的选项,如`contentType`(请求的Content-Type头)、`crossDomain`(是否跨域请求)、`xhrFields`(自定义XMLHttpRequest实例字段)等,它们进一步增强了$.ajax()方法的灵活性。 使用$.ajax()...

    jQuery Ajax 实例代码 ($.ajax、$.post、$.get)

    $.post 和 $.get 方法则是 $.ajax 方法的快捷方式,适用于更简单的 GET 或 POST 请求。$.post 方法用于发送 POST 请求,而 $.get 用于发送 GET 请求。它们的参数相对简单,主要包含 url、data、success、dataType 和...

    使用$.Ajax调用后台.aspx

    若需同步请求(阻塞执行),可将`async: false`添加到配置对象中。 六、跨域问题 默认情况下,$.ajax只允许同源策略下的请求,即协议、域名和端口必须一致。如果需要跨域,可以通过CORS(跨源资源共享)或者JSONP等...

    jquery_ajax

    - `$.getJSON()` 用于获取JSON格式的数据,如 `$.getJSON(url, data, success)`。 7. **$.load()** - `$.load()` 用于从服务器加载HTML片段,并将其插入到DOM中的指定元素。例如,`$('div').load(url, data, ...

    全面解析$.Ajax()方法参数(推荐)

    通过$.ajax()方法,开发者可以指定请求的URL、请求类型、发送的数据、处理数据类型、设置超时时间、配置异步操作、是否从缓存获取数据等。 $.ajax()方法的常用参数如下: 1. url:请求发送的地址,要求为字符串...

    ajax格式的getJSON

    `$.getJSON()`是jQuery库提供的一种简化AJAX请求的方法,专门用于处理JSON数据格式。它简化了AJAX调用的过程,并且自动处理了JSON数据的解析工作。当需要从服务器获取JSON格式的数据时,使用`$.getJSON()`可以极大地...

    $.ajax()方法参数详解

    $.ajax()方法是jQuery库中的一个核心功能,用于在后台与服务器进行异步数据交互,无需刷新页面。熟练掌握$.ajax()的参数设置对于前端开发至关重要。以下是对这些参数的详细解释: 1. **url**: 这是一个String类型的...

    jQuery使用Ajax方法调用WebService

    对于只需要GET请求和JSON响应的场景,jQuery提供了简化的`$.getJSON()`和`$.get()`方法。例如,如果我们只需要获取数据而不需要发送任何参数,可以使用`$.getJSON()`: ```javascript $.getJSON('MyWebService....

    jquery异步请求例子

    除了$.ajax()和$.get()、$.post(),jQuery还有$.getJSON()和$.load()等方法,分别用于获取JSON数据和加载HTML片段。 在实际项目中,我们可能还需要处理异步请求的状态,比如在请求正在进行时显示加载指示器,或者在...

    jquery异步调用post get方式

    `jQuery`提供了`$.ajax()`, `$.post()`, 和 `$.get()`等方法来实现异步请求。本文将深入探讨`jQuery`中的`POST`和`GET`异步调用方式。 1. **GET方式** `GET`是最常见的HTTP请求方法,通常用于获取资源。在jQuery中...

    Jquery中$.ajax()方法参数详解

    JQuery中的$.ajax()方法是前端开发中常用的一种实现AJAX通信的方式,它提供了一种灵活而强大的途径来进行异步的HTTP请求。下面,我们将详细介绍$.ajax()方法的各个参数以及它们的作用和用法。 1. url:这是一个字符...

    Jquery的Ajax应用

    在jQuery中,有几种主要的Ajax函数可供选择,包括`$.ajax()`,`$.get()`,`$.post()`,`$.getJSON()`以及`$.load()`。这些函数都提供了异步与服务器通信的能力,但各有侧重点: - `$.ajax()`是最全面的函数,允许...

    简单的jquery ajax实例,简单明了特别实用

    ### 六、$.getJSON()和$.load() - **$.getJSON()**: 用于获取JSON数据,例如: ```javascript $.getJSON("data.json", function(json) { console.log(json); }); ``` - **$.load()**: 用于加载HTML内容,常...

Global site tag (gtag.js) - Google Analytics