2016-07-05 2 views
0

Ich bin eine Zeichenfolge auf updation eines Datensatzes Rückkehr und wollen auf UI die gleiche Zeichenfolge zeigen (erfolgreich aktualisiert)Spring & AngularJS: Nicht definierter Zustand für PUT-Methode

Hier ist mein Code:

@RequestMapping(method = RequestMethod.PUT, value = "/update") 
    public @ResponseBody String update(@RequestParam("id") int id, @RequestParam("name") String name) { 
     employeeService.update(id, name); 
     return "updated successfully"; 

Front-End-Code:

$scope.update = function(Employee) { 
        $http({ 
         method : 'PUT', 
         url : '/Employee/update', 
         params : { 
          id : Employee.id, 
          name : Employee.name 
         } 
        }).success(function(data, status, headers, config) { 
         $scope.updatedText = data; 
         $scope.updatedFlag = true; 
        }).error(function(data, status, headers, config) { 
         console.log("data.token " + data.token); 
        }); 
       }; 

Hier sind zwei interessante Screenshots

enter image description here

hier Status

wieder

enter image description here

hier Status 200 nicht definiert ist

lass es mich wissen, was der Grund dahinter ist, und Ja Ich kann sehen, dass es eine Änderung in der Hibernate-Tabelle

Bitte helfen ist

+0

Ich muss zugeben, dieses Problem ist sehr schwierig. Vielleicht kann https://docs.angularjs.org/api/ng/service/$http Ihnen helfen. – Azim

+0

uhm '.error()' und '.success()' waren veraltet. Sie arbeiten auch mit einem Parameter, der als Beispiel "Antwort" ist und sie werfen ein Objekt mit der Antwort des Servers. Auch ich denke, dass Sie mit Versprechungen arbeiten sollten, um Ihre Daten besser zu erhalten. –

Antwort

0

Nun, ich Sie verlassen ein Beispiel, wie ich Anrufe mit $http zum API Griff und verspricht $q

ich es verwenden innen ein Service, der auf meine Controller eingespielt werden kann.

this.update = function (Employee) { 
    var datosRecu = null; 
    var deferred = $q.defer(); 
    var token = $cookies.getObject('token'); 
    $http({ 
     url: '/Employee/update', 
     method: 'PUT', 
     params: { 
      id: Employee.id, 
      name: Employee.name 
     }, 
     headers: { 
      'Authorization': 'Bearer ' + token, 
      'Content-type': 'application/json' 
     } 
    }).then(function successCallback(response) { 
     datosRecu = response; 
     deferred.resolve(datosRecu); 
    }, function errorCallback(response) { 
     datosRecu = response; 
     deferred.resolve(datosRecu); 
    }); 
    return deferred.promise; 
}; 

jetzt, wenn ich injizieren es auf meinem Controller ich das Versprechen lesen kann deferred.promise mit allen Daten der Antwort.

ich hoffe es hilft dir.

Verwandte Themen