Возвращение JSON-ответа от контроллера Spring выглядит как HTML вместо JSON в JavaScript - PullRequest
0 голосов
/ 03 мая 2018

У меня есть один контроллер пружины, который отправляет JSON-ответ на вызов ajax, присутствующий в моем скрипте. Я использовал @ResponseBody в методе контроллера, который напрямую отправляет JSON в качестве ответа, когда он вызывается с помощью вызова ajax.

После того, как я добавил JsonSanitizer.sanitize (myJsonString), он возвращается как html в ответе ajax вместо 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 голосов
/ 03 мая 2018

Вы можете указать вид возврата, который вы делаете:

@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)
...