返回来自spring控制器的JSON响应在javascript

时间:2018-05-03 16:53:06

标签: spring owasp

我有一个弹簧控制器,它将JSON响应发送到我脚本中的ajax调用。我在控制器方法中使用了@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形式出现。

请建议我做到这一点,如果需要进一步的话,请告诉我。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以指定您的回报类型:

@ResponseBody
@GetMapping(value="/getJson", produces="application/json")
public String fetchJsonDetails(MyObj obj) {
    // DB Call
    return JsonSanitizer.sanitize(new Gson().toJson(obj));
}

您也可以使用

import org.springframework.http.MediaType;
...
@GetMapping(value="/getJson", produces=MediaType.APPLICATION_JSON_VALUE)