首页 新闻 赞助 找找看

求关于 ajax jsonp 跨域请求 不支持同步 解决方案

0
悬赏园豆:50 [待解决问题]

最近由于毕业设计 需要用到  ajax  跨域访问   但是同步问题 一直是个难点  火狐浏览器可以实现,但是google  不能实现,求大神指导。

$(function(){
$.ajax({
url:base_path+"/Classify/getClassifyAll",
type:"GET",
async:false,
dataType:"jsonp",
jsonp:"jsoncallback",
success:function(data){
var topClassifies=data.topClassifies;
var subClassifies=data.subClassifies;
var lastClassifies=data.lastClassifies;
$.each(topClassifies,function(i,item){
alert(item.classify_name+":"+i)
$(".nav .li_05").before("<li class='li_00'><a href='life_tradition.html' class='li_01'>"+item.classify_name+"</a></li>");
$(".nav li").eq(i+1).append("<div class='ulBox'></div>");
})

$.each(subClassifies,function(j,subItems){
alert($(".nav .li_00").eq(j).find(".ulBox").html());
$.each(subItems.subClassify,function(t,subItem){
if(j==1){
$(".nav .li_00").eq(j).find("div").append("<ul><li class='li_06'><a href=''>"+subItem.classify_name+"</a></li></ul>");
}else{
$(".nav .li_00").eq(j).find("div").append("<ul><li class='li_03'><a href=''>"+subItem.classify_name+"</a></li></ul>");
}
})

alert("finish");
})

$(".nav div").hide();
}

})
})

 

base_path  为跨域服务器的请求地址

问题出在先输出了finish  再发送的请求,我想先执行ajax请求 在执行alert("finish")下面的代码,所以请大家来出出招。

问题补充:

本人在线等啊,比较紧急,在此先谢谢贡献者。

CookieNats的主页 CookieNats | 初学一级 | 园豆:154
提问于:2015-03-29 16:23
< >
分享
所有回答(4)
0

jquery ajax

你这样的话得同步,

试下加上async:false 

问天何必 | 园豆:3311 (老鸟四级) | 2015-03-31 11:27

上述代码中加过async:false同步了  ,但是 在火狐有效果,其他浏览器都不行

支持(0) 反对(0) CookieNats | 园豆:154 (初学一级) | 2015-03-31 14:53
0

你能获取到success 的data 数据吗? 

白色的小菊花 | 园豆:160 (初学一级) | 2015-03-31 17:05

可以的,如果去掉alert数据获取并展示,但是我想让他在alert之前做,就是想做到同步。

支持(0) 反对(0) CookieNats | 园豆:154 (初学一级) | 2015-03-31 19:54
0

在 success 内完成  其他效果逻辑即可

CookieNats | 园豆:154 (初学一级) | 2015-04-16 22:24
0

大神,你的问题解决了吗?可以请教一下吗?

时光微凉 | 园豆:202 (菜鸟二级) | 2016-10-08 14:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册