JSP页面jQuery $.ajax一直返回error(parsererror)

just__lee 2014-09-16 09:43:05
另外两项XMLHttpRequest.status返回200;XMLHttpRequest.readyState返回4.都正常

$.ajax({
data:{"ids":id},
url:url,
dataType:"json",
type:"GET",
success:function(data,textStatus){
console.log(data);
console.log(textStatus);
$.showTips(data.message);
reloadPlugin(
{
"date":lastDate,
"search":$("#search").val()
},
{
table:["list"],
chart:[dgtCht]
});
},
error:function(XMLHttpRequest, textStatus, errorThrown){
alert("失败");
console.log(XMLHttpRequest.status);//200客户端请求已成功
console.log(XMLHttpRequest.readyState);//4响应内容解析完成,可以在客户端调用了
console.log(textStatus);//parsererror
}
});

在控制台的Response返回了整个页面
在控制台的Response Headers打印出的信息如下:
Content-Type:text/html;charset=utf-8
Date:Tue,16 Sep 2014 00:35:02 GMT
Server:Apache-Coyote/1.1
Transfer-Encoding:chunked

但是另外一个请求,仅改变了请求地址url,请求就发送成功了进入success
在控制台的Response Headers打印出的信息如下:
Content-Disposition:inline
Content-Type:text/html

Date:Tue, 16 Sep 2014 01:36:53 GMT
Server:Apache-Coyote/1.1
Transfer-Encoding:chunked

我百度了,有些说Header的类型有关,及编码header('Content-type: text/html; charset=utf8');
还有说struts.xml中ajax请求的action中的result返回类型不是json,但是我看了好像都不太符合我这个问题。

	<global-results>
<!-- 返回AJAX结果通用 -->
<result type="stream" name="success">
<param name="contentType">text/html</param>
<param name="inputName">result</param>
</result>
<result type="stream" name="input">
<param name="contentType">text/html</param>
<param name="inputName">result</param>
</result>
</global-results>
...全文
19450 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
dataType:"json", 这个的问题
xuzuning 2014-09-16
  • 打赏
  • 举报
回复
那就是你的不对了! 既然本意是只取得数据,那你的服务程序怎么能输出与数据无关的东西呢?
just__lee 2014-09-16
  • 打赏
  • 举报
回复
引用 6 楼 xuzuning 的回复:
你只要看 console.log(data); 输出的是什么东西!
也是原来页面的整个页面代码。。。
xuzuning 2014-09-16
  • 打赏
  • 举报
回复
你只要看 console.log(data); 输出的是什么东西!
just__lee 2014-09-16
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
你先把 dataType:"json", 注释掉 在 success:function(data,textStatus){ console.log(data); 观察显示的串是否符合 json 格式 如果你的服务程序有 BOM 头的话,解析也是会失败的
Response返回了整个页面,Preview是一堆乱七八糟的东西。
xuzuning 2014-09-16
  • 打赏
  • 举报
回复
你先把 dataType:"json", 注释掉 在 success:function(data,textStatus){ console.log(data); 观察显示的串是否符合 json 格式 如果你的服务程序有 BOM 头的话,解析也是会失败的
Go 旅城通票 2014-09-16
  • 打赏
  • 举报
回复
不要好像,要用调试工具看实际返回的数据,JSON.parse只有一点不标准就会进error回调,即使动态页200状态
just__lee 2014-09-16
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
dataType:"json",你指定了这个,一定要返回标准格式的json字符串,要不jquery1.4+以上版本会报错的,因为不是用eval生成对象了,用的JSON.parse,如果字符串不标准就会报错。 jQuery dataType son
这个好像返回的是标准格式的JSON,应该不是这个问题。
Go 旅城通票 2014-09-16
  • 打赏
  • 举报
回复
dataType:"json",你指定了这个,一定要返回标准格式的json字符串,要不jquery1.4+以上版本会报错的,因为不是用eval生成对象了,用的JSON.parse,如果字符串不标准就会报错。 jQuery dataType son
Go 旅城通票 2014-09-16
  • 打赏
  • 举报
回复
java不是有结束输出的对象吗?调用那个对象结束其他内容的输出,如asp.net的Response.End()或者php的die什么的
xuzuning 2014-09-16
  • 打赏
  • 举报
回复
是的,服务端程序有问题
just__lee 2014-09-16
  • 打赏
  • 举报
回复
引用 8 楼 xuzuning 的回复:
那就是你的不对了! 既然本意是只取得数据,那你的服务程序怎么能输出与数据无关的东西呢?
那就是JAVA取数据的时候错了吧。

52,798

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧