+ -
当前位置:首页 → 问答吧 → jquery $.ajax方法设置为同步,没有效果。。。

jquery $.ajax方法设置为同步,没有效果。。。

时间:2011-05-03

来源:互联网


这是我的源码。。



//查询地图操作
function doQuery(){
var dsrId = $("#helpEmpCode").val();
  var province = $("#province").val();
  var city = $("#city").val();
  var regional = $("#regional").val();
  var kind = $("#kind").val();
  var status = $("#fakeStatus").val();

  $.ajax({
  url:"selectFakeAction.action",
  async:false,
  type:"post",
  dataType:"json",
  data:"dsrId="+dsrId+"&province="+encodeURI(encodeURI(province))+"&city="+encodeURI(encodeURI(province))
  +"&kind="+kind+"&status="+status,
   
  success:function(data) {
  map.clearOverlays();
  bounds = new GLatLngBounds();
  $.each(data, function(i, n){
  var mess = JsonToStr(n);
  var messObj = eval("("+mess+")");
  //给地图添加所有marker
  showLocation(messObj);//这里打印“进来了?”。。。
  });  
 
  }
  }
  );
  //设定地图显示级别zoom和中心点
  setCenter();
   
}

//把json对象解析为字符串
function JsonToStr(o) {  
var arr = [];  
var fmt = function(s) {  
if (typeof s == 'object' && s != null) return JsonToStr(s);  
return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;  
}  
for (var i in o) arr.push("'" + i + "':" + fmt(o[i]));  
return '{' + arr.join(',') + '}';  
}


//设置地图中心点 和 显示级别 
function setCenter(){
alert("我应该最后执行啊");
map.setCenter(bounds.getCenter(),map.getBoundsZoomLevel(bounds));
}




可是执行结果依然如图。。。


  拜托哪位大哥帮帮我吧,或者我的代码哪里有问题啊,快疯掉了

作者: lushan1314   发布时间: 2011-05-03

对不起,图片出错,换张

作者: lushan1314   发布时间: 2011-05-03

我已经设置了async:false,
为什么还同步不了呢,晕死啊,我的setCenter方法是在.ajax之后的,大家帮帮忙啊

作者: lushan1314   发布时间: 2011-05-03

看文档,跨域不支持这个属性,可以考虑放到ajaxComplete事件里

http://jqapi.com/#p=jQuery.ajax

asyncBoolean
Default: true

By default, all requests are sent asynchronously (i.e. this is set to true by default). If you need synchronous requests, set this option to false. Cross-domain requests and dataType: "jsonp" requests do not support synchronous operation. Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active.

作者: showenxxx   发布时间: 2011-05-03

跨域不支持这个属性?我是在本机上的啊。数据库服务器也在公司域里面的。

作者: lushan1314   发布时间: 2011-05-03

这个地图service也是在同个域里面吗? 
url:"selectFakeAction.action"

作者: showenxxx   发布时间: 2011-05-03

是在本机的,只有gmap是跨域的,

showLocation(messObj);//这里打印“进来了?”。。。

上面这句话会执行一系列的跨域操作。

是否有影响?

作者: lushan1314   发布时间: 2011-05-03

如果不是跨域 那就是数据库类型的问题,'jsonp'也不支持这个属性


可以考虑把数据写成json的形式

data:"dsrId="+dsrId+"&province="+encodeURI(encodeURI(province))+"&city="+encodeURI(encodeURI(province))
  +"&kind="+kind+"&status="+status,

作者: showenxxx   发布时间: 2011-05-03

热门下载

更多