2017-03-31 2 views
0

Spring MVCのにangularjsからデータを送信しようとしているが、415エラー

app.controller('RegisterFormSubmitCtrl', ['$scope', '$http', '$location', function($scope, $http) { 

$scope.submit = function() { 

    var registerData = { 
     "email" : $scope.email, 
     "firstName" : $scope.firstName, 
     "lastName" : $scope.lastName, 
     "DoB": $scope.DoB = new Date(), 
     "password" : $scope.password 
    }; 

    console.log(registerData); 

    $http({ 
     method: 'POST', 
     url: "http://localhost:8080/home", 
     data: registerData, 
     headers: { 
      'Content-type': 'application/json, charset=UTF-8' 
     } 
    }).then(function successCallback(response) { 
    }, function errorCallback(response) { 

    }); 
}; }]); 

Spring MVCのコントローラ

@Consumes("text/html") 
    @RequestMapping(value = "/home", method = RequestMethod.POST) 
    public ResponseEntity<Void> afterRegister(@RequestBody RegisterUserRequest request){ 
     System.out.print("Register user: " + request.getFirstName()); 
     if(userManager.emailRegistered(request.getEmail())){ 
      return new ResponseEntity<>(HttpStatus.CONFLICT); 
     } 
     // checking with google datastore 
     else if(userManager.addUser(request.getEmail(), request.getPassword(), request.getFirstName(), request.getLastName(), 
       request.getDoB(), "User")) { 
      return new ResponseEntity<>(HttpStatus.CREATED); 
     } 
     return new ResponseEntity<>(HttpStatus.CONFLICT); 
    } 

RegisterUserRequestクラスを取得し続けます

@Accessors(chain = true) 
@Data 
@NoArgsConstructor 
@AllArgsConstructor 
public class RegisterUserRequest { 
    @NotNull 
    private String email; 
    private String firstName; 
    private String lastName; 
    private Date DoB; 
    @NotNull 
    private String password; 
} 

エラー:

Failed to load resource: the server responded with a status of 415 (Unsupported Media Type) 

エラーを取り除くために@RequestBody表記を削除しようとしましたが、コントローラはrequestからヌルを受信します。 はまた、まだ依存関係でエラー415

を持って、マッピングでproduces='application/json'を追加しようとした私は、JSONを読み込むには、以下のコメントを追加しました:

<dependency> 
    <groupId>org.codehaus.jackson</groupId> 
    <artifactId>jackson-mapper-asl</artifactId> 
    <version>1.9.13</version> 
</dependency> 
<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
    <version>2.8.6</version> 
</dependency> 
+0

あなたは 'RegisterUserRequest'クラスを投稿できますか? – hrdkisback

+0

私は 'RegisterUserReques'クラスコード – Celeste

+0

は' \t \t \t org.codehaus.jackson \t \t \t ジャクソンコア-ASL \t \t \t 1.9.13 \tこの依存関係を追加します追加しました\t 'と確認してください。 – hrdkisback

答えて

0

お使いのコントローラafterRegister()方法は今、text/htmlコンテンツすなわちを受け入れる@Consumes("text/html")ので、それを変更されました@Consumes("application/json")

+0

私はそれを試みたが、まだ415エラーがある – Celeste

関連する問題