2017-05-24 2 views
0

Ich habe mein Angular-Frontend eingerichtet, um einen REST-fähigen Endpunkt zu treffen. Das Angular-Frontend wird auf localhost: 3000 und das RESTful-Backend auf localhost: 8080 gehostet.Angular 2-App: "XMLHttpRequest kann den Localhost-Endpunkt nicht laden"

In meinem Angular Rest-Client-Dienst, mache ich den Anruf (was ich an anderer Stelle in meiner Anwendung abonnieren):

getCurrentSlides(): Observable<Slide[]> { 
    return this.http.get("localhost:8080/app/slides") 
    .map(extractData) 
    .catch(handleError); 
} 

Aber wenn Angular versucht diese URL zu schlagen, erhalte ich folgende Fehlermeldung:

XMLHttpRequest cannot load localhost:8080/app/slides. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https. 

Und ja, CORS ist auf meinem Server aktiviert.

+3

Erlaubt Sie Server CORS? Sieht aus wie nicht! – Fals

+0

Mögliche Duplikate von [Wie Cross-Domain-Anfrage erstellen (Angular 2)?] (Https://stackoverflow.com/questions/34790051/how-to-create-cross-domain-request-angular-2) – echonax

Antwort

1

Sie vermissen die http:// in der URL. Damit werden die meisten Browser benötigen noch CORS für die verschiedenen Häfen, but IE does not, so dass, wenn http:// Zugabe sollten Sie in der Lage sein, mit IE zu testen:

IE Exceptions

Internet Explorer has two major exceptions when it comes to same origin policy

  • Trust Zones: if both domains are in highly trusted zone e.g, corporate domains, then the same origin limitations are not applied
  • Port: IE doesn't include port into Same Origin components, therefore http://company.com:81/index.html and http://company.com/index.html are considered from same origin and no restrictions are applied.

These exceptions are non-standard and not supported in any other browser but would be helpful if developing an app for Windows RT (or) IE based web application.

Das heißt, Sie sollten CORS ermöglichen. (Aber es scheint, dass Sie es taten, also ist es nur das fehlende http:// Präfix.)

+0

Ich habe habe meine Frage mit einem neuen Fehler aktualisiert, der nach dem Hinzufügen von http: // – David

+0

@David erscheint, das die ursprüngliche Frage in eine Java Spring-Frage geändert hat; Wir sind kein Forum, sondern ein Q & A, also bitte tu das nicht. – Arjan

+0

Ich sehe - ich hatte gehofft, dass die OPTIONEN etwas war, das ich innerhalb des Angular-Projekts konfigurieren würde. Wenn das nicht der Fall ist, sollte ich eine neue Frage starten und diese schließen? – David

Verwandte Themen