首页 文章

Angularjs Java Rest服务415不支持的媒体类型

提问于
浏览
1

我正在使用java spring mvc和angular js .

我创建了一个休息服务:

@RestController 
public class UserApiController { 

@Autowired
private UserService userService;

@RequestMapping(value = "/users/createUser", method = RequestMethod.POST)
public @ResponseBody void addUser(@RequestBody UserRequestDTO newUser) {
    userService.addUser(newUser);
}

我的角度控制器是这样的:

var newUser = { surname : "orozco", name: "daniel", password: "pepe", email:"dani@dani.com" };
$http.post(getCompletePath("users/createUser"), JSON.stringify(newUser))
    .success(function () {
         alert("ok");
    }).error(function () {    
    });

我的UserRequestDTO

public class UserRequestDTO {

private String email;

private String password;

private String name;

private String surname;

吸气剂和二传手

它返回以下错误:415(不支持的媒体类型) .

如果我发送一个字符串o没有参数,它的工作原理 . 所以,问题在于参数

3 回答

  • 0

    我不知道AngularJS,但尝试在AngularJS代码中添加Content-Type . 它应该看起来像这样(根据规范https://docs.angularjs.org/api/ng/service/ $ http):

    var newUser = {
         surname : "orozco",
         name: "daniel",
         password: "pepe",
         email:"dani@dani.com" };
        var req = {
         method: 'POST',
         url: getCompletePath("users/createUser"),
         headers: {'Content-Type': 'application/json'},
         data: newUser};
        $http(req)
         .success(function () {alert("ok");})
         .error(function () {});
    
  • 0

    这可能是因为Content-Type标头,尝试显式包含它,如下所示,

    var req = {
     method: 'POST',
     url: getCompletePath("users/createUser"),
     headers: {
       'Content-Type': 'application/json'
     },
     data: {surname : "orozco", name: "daniel", password: "pepe", email:"dani@dani.com" },
    }
    
    $http(req).success(function(){...}).error(function(){...});
    
  • 0

    我忘了在pom.xml中包含org.codehaus.jackson . 它解决了这个问题

相关问题