ajax异步请求数据无法进入到success方法中这是为什么呢?
代码也很简单,输入一些数据,通过js发送一个json异步请求,要求返回一个数据。是不是返回数据的代码有问题呢,各位大神看看?
@RequestMapping({"getAstSingleWheelImg_bbs"+Constant.JSON})
@ResponseBody
public Result getImgUrl(HttpServletRequest request, Model model, WheelChart chart)throws ParseException{
String userName = request.getParameter("userName");
System.out.println("userName:"+userName);
String astroDate = request.getParameter("astroDate");
String astroHour = request.getParameter("astroHour");
String astroMin = request.getParameter("astroMin");
//略过部分代码 result.setSuccess(true);
result.setDesc(show_imgUrl);
System.out.println(show_imgUrl);
return result;
}
这个整个代码执行过程是没有问题的,结果是正确的,Result是一个返回的类.
js code: $.ajax({
type:"post",
contentType:"application/x-www-form-urlencoded",
cache:false,
url:request_url+"/getAstSingleWheelImg_bbs.jo",
data:a.serializeArray(),
dataType:"json",
timeout:200,
beforeSend: function () {
alert("正在处理请求,请稍后。。");
},
success:function(result){
$("img_wheel").attr("src",result.desc);
alert(a.desc);
},
error:function(){
alert("服务器忙,请重试!");
}
});
}});
执行结果是只跳转到beforeSend方法内,和error方法内,但是错误在哪呢,后台也没有出现异常呢,这里还需要设置什么吗?
求解!ajax异步json
代码也很简单,输入一些数据,通过js发送一个json异步请求,要求返回一个数据。是不是返回数据的代码有问题呢,各位大神看看?
@RequestMapping({"getAstSingleWheelImg_bbs"+Constant.JSON})
@ResponseBody
public Result getImgUrl(HttpServletRequest request, Model model, WheelChart chart)throws ParseException{
String userName = request.getParameter("userName");
System.out.println("userName:"+userName);
String astroDate = request.getParameter("astroDate");
String astroHour = request.getParameter("astroHour");
String astroMin = request.getParameter("astroMin");
//略过部分代码 result.setSuccess(true);
result.setDesc(show_imgUrl);
System.out.println(show_imgUrl);
return result;
}
这个整个代码执行过程是没有问题的,结果是正确的,Result是一个返回的类.
js code: $.ajax({
type:"post",
contentType:"application/x-www-form-urlencoded",
cache:false,
url:request_url+"/getAstSingleWheelImg_bbs.jo",
data:a.serializeArray(),
dataType:"json",
timeout:200,
beforeSend: function () {
alert("正在处理请求,请稍后。。");
},
success:function(result){
$("img_wheel").attr("src",result.desc);
alert(a.desc);
},
error:function(){
alert("服务器忙,请重试!");
}
});
}});
执行结果是只跳转到beforeSend方法内,和error方法内,但是错误在哪呢,后台也没有出现异常呢,这里还需要设置什么吗?
求解!ajax异步json
而且 js里要var json=eval(result);转下,才可以result.desc
而且 js里要var json=eval(result);转下,才可以result.desc
async:false,
看这个,这个是可以接收到的。程序是没有变的。
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
},
$.ajax({
async:true,
type:"post",
contentType:"application/x-www-form-urlencoded",
cache:false,
url:request_url+"/getAstSingleWheelImg_bbs.jo",
data:a.serializeArray(),
dataType:"json",
timeout:200,
beforeSend:function () {
alert("正在处理请求,请稍后。。");
},
success:function(result){
$("img_wheel").attr("src",result.desc);
alert("success");
},
error:function(XMLHttpRequest, textStatus, errorThrown){
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
});
进入到beforeSend方法后,又进入error方法,弹出0,0,timeout三个值,这又是什么情况,加上async:true也不行,false也不行。还有为什么同步请求能接收到这个Result的JAVA类,而ajax请求就不行呢。
异步请求返回Result对象是可以接收到的,这段代码也没有错,所以alert(textStatus)是timeout.
所以,只需要把上述的timeout设置大一点就行了。默认设置是0.永远不超时。