2016-07-20 25 views
0

Hallo Erstmal Danke für Ihre Unterstützung,

ich mit Winkel Sie begann, und ich versuche conmsume Daten aus einer API für meine Anwendung zu verwenden. Ich habe ein paar Probleme damit. Zuerst CORS:

Um lokalen HTTP-Server laufen zu lassen, verwende ich den, der mit node.js kommt (mit http-Server-Befehl). Ich verwende http://www.mocky.io/, um die App zu testen. Ich habe Differenzen erzeugt (mit Kopfzeilen, die ich im Netz gefunden habe, die es reparieren sollen), um dort zu versuchen, CORS zu reparieren (immer Preflight-Fehler bekommen), aber nichts scheint zu funktionieren. Ich habe diese auf meine Methode speichern (in einer Fabrik) hinzugefügt:

save: { 
      method: 'POST', 
      headers: { 
       'Access-Control-Allow-Origin': '*' 
      } 
} 

Wenn ich eine Chrome-Erweiterung CORS genannt verwenden kann ich umgehen, dass und Antwort erhalten, aber dann in der Lage bin ich nicht, das Versprechen und bekommen die Verwaltung Daten innerhalb der Antwort. Ich würde gerne in der Lage sein, die Antwort der Antwort auf die Ansicht zu zeigen.

$scope.submitForm = function() { 
    var promise = null; 
    promise = CheckFactory.save($scope.partner).$promise; 
    $scope.result = promise.data; 
} 

Diese Funktion sendet die Daten aus dem Formular in die Fabrik und die Anforderung erfüllen, aber dann weiß ich bin verloren und nicht, wie die Daten, die ich aus der Antwort verwalten muß.

Vielen Dank im Voraus :)

Antwort

2

Grundsätzlich müssen Sie .then Funktion über Ihre save Methodenaufruf Versprechen setzen. So wird .then Funktion einmal Daten sichern Anforderung wird abgeschlossen.

$scope.submitForm = function() { 
    CheckFactory.save($scope.partner).$promise 
    //it will called success callback when save promise resolved. 
    .then(function(data){ //success 
     $scope.result = data; 
    }, function(error){ //error 
    }); 
} 
+0

Süße :) das funktionierte einwandfrei. Alles über diese Arbeit mit CORS? Ich möchte die Chrome-Erweiterung nach Möglichkeit nicht verwenden, aber ich kann dies nicht tun. Danke für Ihre ultra schnelle Antwort. – Nikos4Life

+0

@ Nikos4Life müssen Sie CORS auch serverseitig einrichten und während Sie eine Anfrage an die Kopfzeile stellen, müssen Sie einige Header mit jeder Anfrage übergeben :) –

+0

Löschte meine Antwort - keine Sorge, sei glücklich Pankaj! :) –