Форум — Web-development Java, Spring, как вернуть JSON? ajax, java, json, spring 0 3 Сабж, друзья.Не пойму, как вернуть JSON для AJAX запроса. I need help. Ссылка
@ResponseBody ну и не забудь спросить json у контроллера TERRANZ ★★★★ (21.06.15 22:31:37 MSK) Последнее исправление: TERRANZ 21.06.15 22:31:53 MSK (всего исправлений: 1) Показать ответы Ссылка
Ответ на: комментарий от TERRANZ 21.06.15 22:31:37 MSK @RequestMapping(value = "/login", method = RequestMethod.POST) public ResponseEntity<LoginResponse> doLogin(@RequestBody LoginRequest loginRequest) { log.debug("doLogin. Login: "+loginRequest.getLogin()+" Password: "+loginRequest.getPassword()); LoginResponse resp = new LoginResponse(); resp.result = true; return new ResponseEntity<LoginResponse>(resp, HttpStatus.OK); } ответ на клиентеThe server refused this request because the request entity is in a format not supported by the requested resource for the requested method ().И что делать? bvn13 ★★★★★ (21.06.15 22:38:40 MSK) автор топика Показать ответы Ссылка
Ответ на: комментарий от bvn13 21.06.15 22:38:40 MSK Может на клиенте надо сделать Accept: application/json? PolarFox ★★★★★ (21.06.15 22:49:36 MSK) Показать ответ Ссылка
Ответ на: комментарий от bvn13 21.06.15 22:38:40 MSK @RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE)Так как-то? produces указать? BattleCoder ★★★★★ (21.06.15 23:08:27 MSK) Ссылка
Ответ на: комментарий от PolarFox 21.06.15 22:49:36 MSK вот мой тестовый вариант на ангуляре: $scope.doLogin = function() { $log.log("User: "+$scope.user.login+" Password: "+$scope.user.password); $http .post('login.html', $scope.user) .success(function(data, status, headers, config) { $log.log("login success"); }) .error(function(data, status, headers, config) { $log.log("login error"); }); }; bvn13 ★★★★★ (21.06.15 23:08:49 MSK) автор топика Показать ответы Ссылка
Ответ на: комментарий от bvn13 21.06.15 23:08:49 MSK Через curl может попробовать для чистоты эксперимента? curl -XPOST -d <тело запроса> -H 'content-type: application/json' <url> BattleCoder ★★★★★ (21.06.15 23:17:01 MSK) Ссылка
Ответ на: комментарий от bvn13 21.06.15 23:08:49 MSK заработало? rusich ★ (22.06.15 00:42:31 MSK) Ссылка
Ответ на: комментарий от bvn13 21.06.15 22:38:40 MSK пока я со всем эти не разобрался, делал вот так @RequestMapping(value = URLConstants.DoJson.Products.PRODUCT_GET_PRODUCT, method = { RequestMethod.GET, RequestMethod.POST }) private ResponseEntity<String> getProduct(HttpServletRequest request, @RequestParam(required = true, defaultValue = "0") Integer id) { ProductDTO ret = new ProductDTO(); Product p = pe.getBean(id); if (p != null) ret = new ProductDTO(p); else ret.ok = false; return ResponceUtils.makeResponce(new JSONSerializer().deepSerialize(ret)); } public static ResponseEntity<String> makeResponce(String json) { HttpHeaders headers = new HttpHeaders(); headers.add("Content-Type", "application/json; charset=utf-8"); return new ResponseEntity<String>(json, headers, HttpStatus.OK); } а вообще всё это вот тут https://github.com/TERRANZ/market/blob/master/src/main/java/ru/terra/market/c... TERRANZ ★★★★ (22.06.15 10:28:34 MSK) Показать ответ Ссылка
Ответ на: комментарий от TERRANZ 22.06.15 10:28:34 MSK return ResponceUtils.makeResponce(new JSONSerializer().deepSerialize(ret));Извините, что придираюсь, но у вас опечатка в слове Responce. php-coder ★★★★★ (22.06.15 15:08:04 MSK) Ссылка
Ответ на: комментарий от Adonai 22.06.15 09:20:40 MSK Не было, добавил. bvn13 ★★★★★ (23.06.15 00:54:49 MSK) автор топика Ссылка
Ответ на: комментарий от TERRANZ 21.06.15 22:31:37 MSK Да, добавил @ResponseBody, добавил produces, и с клиента запрос к login.json (предварительно добавив обработку этого разширения в web.xml спринга) bvn13 ★★★★★ (23.06.15 00:56:42 MSK) автор топика Ссылка