Javascript Ajax成功数据返回完整的HTML页面
我正在使用带有日期选择器字段的Javascript Ajax成功数据返回完整的HTML页面,javascript,jquery,ajax,json,jsp,Javascript,Jquery,Ajax,Json,Jsp,我正在使用带有日期选择器字段的iFrameclass JSP页面。在从选择器中选择日期时,我使用jQuery AJAX调用将日期发送到Struts操作,如下所示: $( "#datepickerStart" ).datepicker({ onSelect: function(dateText, instance) {//date select from picker to trigger $.ajax({ type: "Post",// post method url:
iFrame
class JSP页面。在从选择器中选择日期时,我使用jQuery AJAX调用将日期发送到Struts操作,如下所示:
$( "#datepickerStart" ).datepicker({
onSelect: function(dateText, instance) {//date select from picker to trigger
$.ajax({
type: "Post",// post method
url: 'checkAvailability.do?operation=getlist&datepickerStart='+ ("#datepickerStart").val(), // passing URL with date value to STRUTS Action
data: "date="+date,
//dataType: "application/json",
success: function(data) {
alert(data); //getting with the complete HTML page
}
});
}
});
我从DB中获取列表中的结果并转换为JSON对象,如下所示:
Gson gson = new Gson();// Using google GSON to convert to JSON
String json = new Gson().toJson(lRList);
response.setContentType("application/json");// setting content type
response.setCharacterEncoding("UTF-8"); //setting character encoder
response.getWriter().write(json);// writing to response the JSON object
System.out.println("JSON Object::"+json);
在标准输出中,我得到如下结果:
JSON Object::[{"bookDate":"2014-07-11","fromTime":"2:00PM","totime":"3:30PM","userID":"XXX","isSuccess":false},
{"bookDate":"2014-07-11","fromTime":"10:30AM","totime":"11:00AM","userID":"XXX","isSuccess":false}]
但是Ajax success中的警报提供了完整的HTML页面:(.我需要这些数据,并希望通过在div表中显示来填充同一JSP中的值。因此,有人能帮我解决这个问题并让我知道我在哪里犯了错误吗…我认为在Ajax调用中应该使用get而不是post
$( "#datepickerStart" ).datepicker({
onSelect: function(dateText, instance) {//date select from picker to trigger
$.ajax({
type: "get",
url: 'checkAvailability.do?operation=getlist&datepickerStart='+ ("#datepickerStart").val(), // passing URL with date value to STRUTS Action
data: "date="+date,
//dataType: "application/json",
success: function(data) {
alert(data); //getting with the complete HTML page
}
});
}
});
设置AJAX错误以获得如下错误:
$.ajaxSetup({
error: function(jqXHR, e) {
var msg = '';
if(jqXHR.status==0){
msg = 'You are offline!!\n Please Check Your Network.';
}else if(jqXHR.status==404){
msg = 'Requested URL not found.';
}else if(jqXHR.status==500){
msg = 'Internal Server Error.<br/>'+jqXHR.responseText;
}else if(e=='parsererror'){
msg = 'Error: Parsing JSON Request failed.';
}else if(e=='timeout'){
msg = 'Request Time out.';
}else {
msg = 'Unknow Error.<br/>'+x.responseText;
}
console.log('error: '+jqXHR.responseText);
console.log('Error msg: '+msg);
}
});
另外,您忘了将$
放在(“#datepickerStart”).val()的开头
对于进一步的参考签出无改进:(仅返回相同的HTML内容)您是否尝试从浏览器浏览相同的URL,如果一切正常,它应该返回JSON对象,如果它仍然返回整个页面,我建议您检查JSP页面您是否尝试将数据类型设置为JSON&服务器(JSP)上发生了什么?如果我使用数据类型作为JSON,我就不能自己进行AJAX调用
$("#datepickerStart").datepicker({
onSelect: function(dateText, instance) {
$.ajax({
type: "post",
url: 'checkAvailability.do?operation=getlist&datepickerStart='+$("#datepickerStart").val(),
data: "date="+date,
dataType: 'json',
success: function(data) {
alert(JSON.stringify(data));
}
});
}
});