2016-03-24 5 views
3

ポストメソッドを使用するとうまく動作しますが、サーバを置くように変更しようとするとオブジェクトが受信されません。Spring + Angularjsはポストポストを変更できません

UserController.java:

@RequestMapping(value = "/user/{user}", method = RequestMethod.POST) 
    public ResponseEntity<User> updateUser(@ModelAttribute User user) { 
     userService.updateRow(user); 
     return new ResponseEntity<User>(user, HttpStatus.OK); 
    } 

user_service.js:

updateUser: function(user, id){ 

        return $http.post('http://localhost:8080/user/', user) 
         .then(
         function (response) { 
          return response.data; 
         }, 
         function (errResponse) { 
          console.error('Error while updating user'); 
          return $q.reject(errResponse); 
         } 
        ); 

      }, 

どのようにメソッドを入れて、それを変更できますか?

使用PUT:

UserController.java:

@RequestMapping(value = "/user/{user}", method = RequestMethod.PUT) 
    public ResponseEntity<User> updateUser(@RequestBody User user) { 
     userService.updateRow(user); 
     return new ResponseEntity<User>(user, HttpStatus.OK); 
    } 

user_service.js:あなたはURLのidを含める必要が

updateUser: function(user, id){ 
        return $http.put('http://localhost:8080/user/', user) 
         .then(
         function (response) { 
          return response.data; 
         }, 
         function (errResponse) { 
          console.error('Error while updating user'); 
          return $q.reject(errResponse); 
         } 
        ); 

      }, 
+0

POSTを使用し、正常に動作するコードを表示する代わりに、PUTを使用して動作しないコードを表示してください。正確には、あなたが期待していることと、それが何をするのかを教えてください。 「うまくいきません」という表現はあまりにも曖昧です。 –

+0

AngularとSpringの両方で変更しましたか? –

+0

@Luka Jacobowitz、はい。 – Geha

答えて

1

。そうしないと、経路は/user/{user}と一致しません。

updateUser: function(user, id){ 
     return $http.put('http://localhost:8080/user/' + id, user) 
     .then(
      function (response) { 
       return response.data; 
      }, 
      function (errResponse) { 
       console.error('Error while updating user'); 
       return $q.reject(errResponse); 
      } 
    ); 

}, 
関連する問題