2013-12-04 2 views
0

У меня простой метод контроллера:Spring MVC - не RequestBody работает (JSON)

@RequestMapping(value = "/test", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) 
@ResponseStatus(value = HttpStatus.OK) 
@ResponseBody 
public void postCheck(@RequestBody TestDTO testDTO, HttpServletRequest request) { 

System.out.println(testDTO); 

} 

DTO является:

public class TestDTO { 

private String hello; 

public TestDTO() { 

} 

public String getHello() { 
    return hello; 
} 

public void setHello(String hello) { 
    this.hello = hello; 
} 

}

Когда я пытаюсь оставить запрос на этот url я получаю сообщение об ошибке ERROR 400 «Запрос, отправленный клиентом, был синтаксически неправильным». (Метод контроллера не вызывается на всех)

Я попытался размещения от плаката плагин в Chrome и с помощью AJAX Jquery в:

$.ajax({ 
    type : "POST", 
    url : "http://localhost:8080/NG_Admin/test", 
    contentType : "application/json", 
    dataType : "json",  
    data : JSON.stringify(eval({"hello" : "world"})), 
    error : function(data) { 
     alert('Error'); 
    }, 
    success : function(data) { 
      alert('Success!'); 
    } 
}); 
} 

Есть идеи? (Кстати я использую как 'Джэксона-картографа-ASL', версия: '1.9.12', 'Джэксона-ядро-над уровнем моря', версия: '1.9.12')

Благодаря

+0

работает, когда вы удаляете 'consumes = ...' из '@ RequestMapping' - Аннотации? У меня есть несколько подходящая настройка здесь (весна 3.2.4, jackson 1.9.12, jquery post from frontend, только расширенная с помощью прямой проверки для моей формы/dto тоже), только пропуская потребляет - и это работает как шарм. Но ... Я вижу, что вы строчите некоторые строки в json от клиентов ... возможно, это тоже. Я попытался бы удалить '' '' ' – Dominik

+0

Все еще не работает :(Должен ли я настроить весну для работы с jackson? Или это происходит автоматически? – Urbanleg

ответ

0

ОК, я установил проблема,

Пришлось добавить фильтр для всех запросов, которые обрабатывают доступ CORS.

+1

Добавление немного больше об фильтрах может помочь другим. –

Смежные вопросы