2 neoest Neoest 于 2016.05.05 12:55 提问

Ajax返回json串附带html页面元素

大家好!现在我碰到一个问题,在后台传到前台的页面中的json莫名多了一些html元素,导致json无法解析,出现错误,我想问问这种情况有同僚遇到过吗?是怎么解决的吗,谢谢分享,有大神也希望帮忙看看!图片说明,这是后台返回的json串,最上面是我需要的json,下面的是html页面元素,

这是ajax
图片说明

大家帮下忙,小弟感激不尽

18个回答

Royal_lr
Royal_lr   Ds   Rxr 2016.05.05 14:58
已采纳

我知道是从后台跑出来,,如果是struts的话,,可以这样

 <result name="success" type="json">
     <param name="root">result</param>
 </result>

result为action中的成员变量,有get和set方法

Royal_lr
Royal_lr 回复Neoest: 不知道你们后台用的什么框架,,
一年多之前 回复
Neoest
Neoest 按照这个改了,现在没有后面的html元素了,需要点击两次查询才能出来.F12后台显示的是没有请求,
一年多之前 回复
sxchen_csdn
sxchen_csdn   2016.05.29 16:20

想A页面Ajax请求,后台处理完,数据还是返回A页面,按两个步骤修改:

第一步:后台不能做页面跳转, action中处理请求的方法声明为void, 不直接返回数据。

第二步: 处理请求的方法中,把要返回前端的数据 写入响应对象里,就是HttpServletResponse
// HttpServletResponse
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
// 响应内容为Json类型
response.setContentType("application/json; charset=UTF-8");
response.getWriter().write("用来返回前端的 json字符串");

第三点: 你的Ajax请求少了一个参数, dataType:"json"

希望能帮到你!

Neoest
Neoest 谢谢
一年多之前 回复
Royal_lr
Royal_lr   Ds   Rxr 2016.05.05 14:09

你后台跳转的时候,是会跳到一个页面吗

Neoest
Neoest 回复Royal_lr: 小哥有啥思路吗?这个值必须得从后台程序跑出来,如果不用页面跳转的话
一年多之前 回复
Royal_lr
Royal_lr 回复Royal_lr: 那如果是struts的话,没有必要跳到一个页面,,因为你的目的只是传值而已
一年多之前 回复
Royal_lr
Royal_lr 回复Neoest: 这不是struts吗,,你怎么说的jfinal
一年多之前 回复
Neoest
Neoest 是的,处理完成之后会跳到本来的这个页面,我也隐隐约约感觉是这个问题,..大神,看楼下
一年多之前 回复
azraelluck
azraelluck   2016.05.05 14:55

我好像记得struts返回json要在result里面写上type="json"吧

azraelluck
azraelluck http://kyfxbl.iteye.com/blog/1666056 看下这个文章可能对你有帮助
一年多之前 回复
jhfsdfs
jhfsdfs   2016.05.05 13:12

应该是你后台的问题吧

Neoest
Neoest 我后台把randersonJson关闭了,也就说后台啥也不给前台传了,,还是会出来html页面,,求帮忙 看楼下,
一年多之前 回复
Neoest
Neoest   2016.05.05 13:39

public String toDataTableJson(Page page,
ObjectToMapCallback callback, String... args) {
String result = "";
try {
ReturnObject ro = toDataTableJsonObject(page.getResult(),
callback, args);
ro.setRecordsTotal(Integer.parseInt(page.getTotalCount() + ""));
ro.setRecordsFiltered(Integer.parseInt(page.getTotalCount() + ""));
//renderJSON(JSON.toJSONString(ro,SerializerFeature.WriteMapNullValue)); 这句注释掉了,,
} catch (Exception e) {
logger.error(e.getMessage());
result = e.getMessage();
}
return result;
}

Neoest
Neoest   2016.05.05 13:40

图片说明 这是注释掉上面哪句 renderJson之后页面的情况,还是能显示html页面元素

Royal_lr
Royal_lr   Ds   Rxr 2016.05.05 13:49

f12,,看下请求的详细信息

Neoest
Neoest 帮忙看下楼下,谢谢,
一年多之前 回复
Neoest
Neoest   2016.05.05 14:03

图片说明

图片说明
图片说明
图片说明
图片说明

Neoest
Neoest   2016.05.05 14:05

图片说明

这个是后台返回的一切正常,但是到页面就多了一些html参数,求大婶,这个问题卡了我三天了

共18条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!