2014-09-10 5 views
3

Вопрос очень прост, и я знаю, что он ответил на многие другие вопросы, но никто не работал для меня. Используя Spring MVC и AngularJS, я получаю Unlevuped Media Type от AngularJS 415!Spring MVC + AngularJS 415 Неподдерживаемый тип материала

Я попытался установить угловую заголовок приложения/JSON
Я попытался с @Consumes аннотацию на стороне сервера
Я попытался с consumes ="application/json"
Я устал с consumes ="application/application/json;charset=UTF-8'
Я попытался с consumes ={"application/json","application/xml"}
Я также попытался установить производит недвижимость ,

Я попытался явно установить тип контента для прослушивания на клиенте, чтобы он соответствовал именно тому, который был на сервере, но НИЧЕГО НЕ РАБОТАЕТ! вот связанные вопросы, которые никому не помогли! 1
2 3

Вот мой контроллер

/** 
* Created by [email protected] 
*/ 
@Controller 
@RequestMapping(value = "/administration/places") 
public class PlacesController { 

    private PlacesService service; 

    @Autowired 
    public PlacesController(PlacesService service) { 

     this.service = service; 

    } 


    @RequestMapping(method = RequestMethod.POST,consumes = {"application/json;charset=UTF-8"}) 
    public String newPlace(@RequestBody Place places) { 

     String id = service.addNewPlace(places); 

     return "/administration/places/" + id; 

    } 


    @RequestMapping(value = "/{id}") 
    public Place getById(@PathVariable String id) { 

     return new Place(); 

    } 


} 

И мой контроллер AngularJS

function NewPlacesController(scope, http) { 


    scope.place = {}; 

    scope.add = function() { 

     http.post(URLS.addNewPlace, scope.place,{'Content-Type': 'application/json'}).success(function (value) { 

      console.log("got it !"); 

     }).error(function (value) { 
      console.log("CUR!"); 
     }); 

    } 
} 

NewPlacesController['$inject'] = ['$scope', '$http']; 
+0

Что ваш запрос выглядит? Как выглядит ваш метод? – zeroflagL

ответ

2

Попробуйте:

@RequestMapping(method = RequestMethod.POST,consumes = {"application/json;charset=UTF-8"}, produces={"application/json;charset=UTF-8"}) 
public String newPlace(@RequestBody Place places) { 

    String id = service.addNewPlace(places); 

    return "/administration/places/" + id; 

} 

И убедитесь, что вы включили библиотеку Джексона DataBind.

+0

Это действительно сработало ...! – Adelin

1

Посмотрите на тип контента в вашем угловом коде. Возможно, вам придется явно установить его. Также посмотрите на реализацию Spring MVC. Вы можете использовать приложение «REST Console» в Chrome, чтобы проверить ваш api, чтобы убедиться, что он работает так, как вы полагаете.

1

добавить в вашем ПОМ:

<dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-mapper-asl</artifactId> 
     <version>1.9.13</version> 
    </dependency> 
+0

Можете ли вы добавить немного больше контекста для этого ответа. Что такое пом? Почему это нужно добавить? –

+0

pom.xml используется для проекта maven. Maven - это «программа», которая поможет вам создать приложение java/J2EE. Трудно в начале, но после этого вы можете быстро создавать веб-приложения. – Patrikoko

+0

здесь учебник о maven: http://www.denofprogramming.com/apache-maven-tutorial-pom/ – Patrikoko

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