2016-07-18 13 views
0

Ich habe eine Webanwendung in AngularJS und einen Flask-Server erstellt und läuft unter localhost:5000/. Ich wollte einen Login-Dienst machen, so dass ich unter anderem folgende Code in meinem Controller in AngularJS:Wie bringt man AngularJS App und Flask auf dieselbe Domain?

$scope.login = function() { 
      $http({ 
       method: 'POST', 
       data: { 
       username: $scope.username, 
       password: $scope.password 
       }, 
       url: 'http://127.0.0.1:5000/login/' 
      }).then(function successCallback(response) { 
       console.log('successCallback') 
       }, function errorCallback(response) { 
       console.log('errorCallback') 
       }); 
} 

Ich nenne die login() Methode aus der Benutzeroberfläche. Aber das gibt mir die folgende Fehlermeldung:

XMLHttpRequest cannot load http://127.0.0.1:5000/login/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. 

Weitere, wenn ich auf diesen Fehler untersucht, fand ich this link, die besagt, dass meine Seite auf einer anderen Domäne ist als mein Server. Wie bringe ich meinen AngularJS- und Python-Server auf dieselbe Domain? Welchen Codeabschnitt muss ich angeben, so dass ich anstelle von url:'http://127.0.0.1:5000/login/' nur '/login' angeben muss? Ich weiß, dass das eine triviale Frage sein könnte, aber bitte führe mich.

+0

Haben Sie versucht, von 'http: //127.0.0.1: 5000 /' auf Ihre App zuzugreifen und nicht auf 'http: // localhost: 5000/'? Beide führen zwar zum selben Ort, aus Sicht des Browsers sind sie jedoch separate Domains. –

+0

Ja, ich habe beide versucht, die gleiche Ausgabe im Browser, wenn ich die Links öffne, und den gleichen Fehler bei der Post-Aufruf durch Angular $ http-Methode –

Antwort

0

Ändern Sie App.Run in Flasch Code und Ihre URL alle zu 127.0.0.1 und durchsuchen Sie dann 127.0.0.1, dann wird es funktionieren.

Verwandte Themen