Spring MVC + AngularJS 415不支持的媒体类型

时间:2014-09-10 13:06:37

标签: json angularjs spring spring-mvc

这个问题非常简单,我知道它在很多其他问题中得到了解答,但没有一个对我有用。使用Spring MVC和AngularJS我得到AngularJS 415不支持的媒体类型!

我尝试将angular header设置为application / json
我尝试在服务器端使用@Consumes注释 我尝试了consumes ="application/json"
我厌倦了consumes ="application/application/json;charset=UTF-8'
我尝试了consumes ={"application/json","application/xml"}
我也尝试设置生产属性。

我尝试在客户端上明确设置听力内容类型,以便与服务器上的内容完全匹配但是,没有工作! 这里是没有实际帮助的相关问题! 1
2 3

这是我的控制器

/**
 * Created by adelin.ghanayem@gmail.com
 */
@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'];

3 个答案:

答案 0 :(得分: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;

}

确保你收录了Jackson Databind图书馆。

答案 1 :(得分:1)

查看角度代码中的内容类型。您可能需要明确设置它。另请参阅Spring MVC实现。您可以使用" REST控制台" Chrome中的应用程序来测试你的api以确保它以你认为的方式工作。

答案 2 :(得分:1)

加入你的pom:

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