2016-06-02 5 views
1

Ich habe eine sehr grundlegende Frage.Wo kann man Kors aktivieren?

Ich habe eine Anwendung www.myapp1.com auf Tomcat-Server gehostet. Es wiederum ruft apis auf myapis.com/api1 auf Apache-Server gehostet.

Während Laden der Seite, es besagt, bricht -

XMLHttpRequest nicht myapis.com/api1 laden. Antwort auf Preflight Anfrage nicht bestanden Zugriffskontrolle prüfen: Nein 'Access-Control-Allow-Origin' Header ist auf der angeforderten Ressource vorhanden. Origin 'www.myapp1.com' ist daher nicht erlaubt. Die Antwort hatte HTTP-Statuscode 403.

Ich verstehe, dass ich CORS aktivieren muss. Meine Frage ist, auf welchem ​​Server kann ich CORS aktivieren? Sollte es www.myapp1.com oder myapis.com/api1 sein?

Ich habe versucht, CORS auf www.myapp1.com, die ein Tomcat7.0.59 Server ist durch Hinzufügen der minimale Filter (unten) zu /config/web.xml Datei und Neustart des Servers. Es funktioniert jedoch nicht. Muss ich noch etwas hinzufügen/konfigurieren?

<filter> 
    <filter-name>CorsFilter</filter-name> 
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>CorsFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

Ist der Platzhalter im URL-Muster ein Problem? Muss ich etwas tun, um die Filterklasse einzurichten?

Ich verwende Chrom zu testen. Bitte helfen.

+0

Mögliches Duplikat von [Wie CORS auf einer Wordpress-Sub-Domäne aktivieren?] (Http://stackoverflow.com/questions/38378729/how-to-enable-cors-on-a-wordpress-subdomain) –

Antwort

1

Die default value von cors.exposed.headers ist "". Fügen Sie diesen Parameter hinzu, um das Problem zu beheben.

<filter> 
    <filter-name>CorsFilter</filter-name> 
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> 
    <init-param> 
    <param-name>cors.exposed.headers</param-name> 
    <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value> 
    </init-param> 
</filter> 
+0

Ich habe jetzt die Init-Parameter wie in der erweiterten Konfiguration http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#CORS_Filter – Ritwik

+0

Keine Änderung hinzugefügt. Wenn ich in Chrome auf Dev Tools-> Netzwerk klicke, kann ich Folgendes sehen, unabhängig davon, ob der CORS-Filter aktiviert ist. OPTIONEN/API1 HTTP/1.1 Host: myapis.com Verbindung: Keep-Alive- Access-Control-Request-Methode: Herkunft GET: https://myapp1.com User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/51.0.2704.84 Safari/537.36 Zugriffskontroll-Header: access-control-allow-origin, Autorisierung Akzeptieren: */* Referer: https : //myapp1.com Accept-Encoding: gzip, deflate, sdch, br Akzeptieren-Sprache: en-US, en; q = 0.8 – Ritwik

+0

Welchen Fehler sehen Sie in ** Dev Tools -> Console **? Wenn der Fehler der gleiche wie zuvor ist, überprüfen Sie bitte erneut die , es ist Groß-und Kleinschreibung. –

Verwandte Themen