2016-05-01 8 views
0

Ich erstelle eine Webanwendung. Ich habe eine API erstellt, und wenn ich versuche, einen http get Aufruf von Angular zu machen, schlägt es fehl. Ich weiß, dass meine API funktioniert, weil ich sie bereits im Browser und Postman (auf Chrome) getestet habe. Außerdem weiß ich, dass mein Code gut ist, weil ich ihn getestet habe, indem ich die URL in githubs 'API geändert habe (https://api.github.com/users), und die Antwort war erfolgreich. Kann mir jemand helfen herauszufinden, warum die Aufrufe meiner API nicht funktionieren, wenn beide das gleiche Ergebnis liefern (eine Sammlung von JSon-Objekten)? Diese

$http({ 
     method: 'GET', 
     url:'http://localhost:63473/api/posts' // my api 
     //url: 'https://api.github.com/users' // github api 
    }) 
     .then(function (response) { 

      // successful call 
      angular.copy(response.data, viewModel.posts); 
      alert("Good"); 

     }, function (error) { 

      // call to api failed 
      viewModel.errorMessage = "Failed to load posts: " + error; 

     }); 

ist die Antwort von meinem Ruf von Postman

[ 
{ 
    "id": "6db78556-c4dc-4c7c-a969-db0d202f32fc", 
    "text": "This is the second Post.", 
    "postedOn": "2016-04-30T21:26:56.7886027-04:00" 
}, 
{ 
    "id": "5c9d9e0b-0b23-4895-93ba-b86a36e03f84", 
    "text": "Hello everyone, this is my first Post", 
    "postedOn": "2016-04-30T21:26:56.7846017-04:00" 
} 
] 
+0

Welcher Fehler wirft es? Überprüfen Sie die Konsolenprotokolle. –

Antwort

1

Sind Sie der API läuft und die $ http JS auf der gleichen URL? Wenn dies nicht der Fall ist (auch wenn der Port anders ist), müssen Sie CORS auf Ihrer API aktivieren, um domänenübergreifende Anfragen zuzulassen. Bitte teilen Sie die Antwort, die Sie erhalten, wenn Sie diesen Anruf tätigen.

Vielen Dank, Soma.

+0

Sie laufen nicht unter derselben URL. –

+0

K. Bitte aktivieren Sie Cross-Origin Resource Sharing (CORS) auf der API, so dass Anfragen von was auch immer Ihre Client-URL ist erlaubt. Bitte sehen Sie diesen Link für weitere Informationen [link] (http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api) –

+0

Vielen Dank. Nur neugierig, damit kann ich noch eine Art Sicherheit durchsetzen? Wie nur einige Benutzer von der Anwendung zu erlauben, Anrufe an die API zu bekommen ... –

Verwandte Themen