2017-05-27 2 views
-2

In meiner Maven-App habe ich http-Anfrage auf diese Funktion (unter Verwendung von Feder-Framework) zugeordnet, und ich möchte etwas darin überprüfen und Antwort als Text senden. Dann möchte ich diese Anfrage von angularjs senden und diese Antwort in eine Variable von angularjs controller speichern. Das habe ich ausprobiert.So geben Sie eine Zeichenfolge als Antwort auf HTTP-Anforderung zurück

@RequestMapping(path="/play", method={RequestMethod.POST}, produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) 
public String someFunction(){ 
    //... 
    return "some text"; 
    } 

$scope.getResponse = function(param1, param2...){ 

      $http.post("url..").then(
        function(response){ 
         $scope.response = response.data.response; 
         console.info('success'); 
        }, 
        function(response){ 
         console.info('failure'); 
        }) 

     } 

Http abgebildet korrekt ist und funktioniert von Browser, Problem ist, wie Text-Antwort in eine AngularJS Variablen speichern von der Steuerung.

+0

@progyammer Ja, mein schlecht, dass Funktion zurückkehrt Zeichenfolge, bearbeitet. – wdc

+0

Von der nächsten Zeit, Code in Fragen nicht eingeben: es ist Tippfehler anfällig. Kopieren Sie sie einfach. – progyammer

+0

Sie sollten '@ ResponseBody' zu spring Methode hinzufügen –

Antwort

1

Es scheint $http findet es schwierig, die ungültigen JSON-Daten in der Antwort zu analysieren. Wir haben produces = {MediaType.APPLICATION_JSON_UTF8_VALUE} dort für die API und das Senden von Klartext. Deshalb geht es zum Fehlerbehandler.

Ändern Sie den Medientyp MediaType.TEXT_PLAIN_VALUE und sehen, ob es funktioniert ...

Verwandte Themen