2017-10-26 5 views
0

war dieses Problem den ganzen Tag und seine offiziell jenseits von mir. Ich habe über Google nach verschiedenen Interpretationen gesucht, um zu versuchen, dies zu tun, aber es bietet mir das gleiche Problem an.angular4 http erhalten 405 Fehler

Ich versuche, http zu einer API zu bekommen, die außerhalb meines Unternehmensnetzes ist. mit

Proxy proxy = new Proxy(Proxy.Type.HTTP, new 
InetSocketAddress("proxy.example.com", portnumber)); 

HttpURLConnection con = 
      (HttpURLConnection) new URL(urlstring).openConnection(proxy); 

Ich versuche, auf den gleichen api (urlString) von einer angular4 Anwendung zu erhalten bin jetzt mit Java Ich habe dies auf dem gleichen api vor erreicht.

in der Dienstklasse i haben:

let headers = new Headers({ 'Access-Control-Allow-Origin': '*' , 
          'Authorization': 'BASE64AUTHENTICATION', 
          'Accept': 'application/json' }); 

let options = new RequestOptions({ headers: headers }); 

return this.http.get(urlstring, options).map(res => res.json()); 

ich nicht nur so etwas wie die Java-Proxy sehen, der mir erlaubt, um meine Erhaltungs-Anforderung mit dem Corporate-Proxy-Server zu wickeln.

Derzeit bekomme ich 'Response für Preflight hat ungültigen HTTP-Status-Code 405' Evry Zeit versuche ich auf die API zugreifen. Es scheint mir weit genug durchzulassen, wenn ich nicht versuche, Authentifizierungsheader zu verwenden, aber es wird dafür benötigt.

+0

Das Back-End des Servers, an den Sie diese Anfrage senden, ist nicht für OPTIONS-Anfragen konfiguriert. Das sagt Ihnen die 405. Daher müssen Sie dieses Backend für die Verarbeitung von OPTIONS-Anfragen konfigurieren - um eine 200 OK-Antwort mit den richtigen CORS-Antwortheadern zurückzusenden. Der Grund für die Behandlung von OPTIONS-Anfragen ist, dass Ihr Browser (automatisch automatisch) eine CORS-Preflight-OPTIONS-Anfrage sendet, bevor er die GET-Anfrage aus Ihrem Code ausprobiert. Siehe https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Preflighted_requests – sideshowbarker

Antwort

0

Sie sollten Ihre Browser-Proxy-Konfiguration überprüfen, während Ihre Angular 4 App darauf ausgeführt wird.

+0

Ich dachte eigentlich, das sei ein guter Vorschlag. Ich habe versucht, den Proxy-Server über Browser-Einstellungen, aber keine Änderung, um traurig zu reagieren. Was ich bemerkt habe ist, wenn ich das Chrome CORS Plugin benutze, umgeht es die CORS Beschwerde. Es schickt mir dann eine richtige Antwort (401), wenn ich keine Header/Anfrage-Optionen sende. aber wenn ich die Authorization-Header hinzufügen, dann wird es wieder auf die 405 ..... – jimmyboix

Verwandte Themen