json之Spring MVC + AngularJS 415 不支持的媒体类型
这个问题很简单,我知道很多其他问题都回答了这个问题,但没有一个对我有用。使用 Spring MVC 和 AngularJS 我得到 AngularJS 415 Unsupported Media Type !
我尝试将 Angular header 设置为 application/json
我尝试在服务器端使用 @Consumes
注释
我尝试使用 consumes ="application/json"
我厌倦了 consumes ="application/application/json;charset=UTF-8'
我尝试使用 consumes ={"application/json","application/xml"}
我还尝试设置 produces 属性。
我尝试在客户端上明确设置收听内容类型以与服务器上的内容类型完全匹配,但是,没有任何效果! 这是相关的问题,但实际上没有帮助! 1
2 3
这是我的 Controller
/**
* 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 Controller
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'];
请您参考如下方法:
试一试:
@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.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。