【发布时间】:2018-10-14 01:46:51
【问题描述】:
我有一个 spring 控制器,它正在向我的脚本中的 ajax 调用发送 JSON 响应。我在控制器方法中使用了@ResponseBody,它在通过ajax调用调用时直接发送JSON作为响应。
当我添加 JsonSanitizer.sanitize(myJsonString) 后,它在 ajax 响应中返回为 html 而不是 JSON。因此,我现在无法解析 json 对象。
示例代码:
@ResponseBody
@RequestMapping(value="/getJson" method="GET")
public String fetchJsonDetails(MyObj obj) {
//DB call based on my object..
//Previously added
//return new Gson().toJson(obj);
//New line added now
return JsonSanitizer.sanitize(new Gson().toJson(obj));
}
在上面添加新行之后,响应是 html 而不是 JSON。
请建议我实现这一目标,如果有任何需要,请告诉我。
提前致谢。
【问题讨论】:
-
如何检查输出是否为 html ?
-
当我对 Ajax 响应发出警报时,我得到的是 html,但我无法使用 JSON.parse 方法解析该响应 obj。
-
它正在工作。我的错,我认为 Json 没有被退回。它正在返回 Json,但格式不正确。我已经在脚本中更改了它,现在一切正常。谢谢@NayoR
-
能否发布您是如何解决问题的(如果您忘记添加一些信息,请更新它)?可以帮助别人;)
-
实际上在返回的格式中,我已经检查了值。当我在服务器端使用 enocde.forjavascript 时,它有一些额外的编码值。我只是替换了脚本中的编码值,并将其转换回有效的 Json。然后我使用 JSON.parse 方法传递它并访问所有这些值。