最近由于毕业设计 需要用到 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")下面的代码,所以请大家来出出招。
jquery ajax
你这样的话得同步,
试下加上async:false
上述代码中加过async:false同步了 ,但是 在火狐有效果,其他浏览器都不行
你能获取到success 的data 数据吗?
可以的,如果去掉alert数据获取并展示,但是我想让他在alert之前做,就是想做到同步。
在 success 内完成 其他效果逻辑即可
大神,你的问题解决了吗?可以请教一下吗?