Ich versuche, einfache CORS-Anfrage an externe Anwendungsserver, die Sitzungsschlüssel für die Autorisierung verwendet senden.CORS-Anfrage schlägt in Chrome nur fehl, wenn Header
$.ajax({
type: "GET",
url: "https://192.168.1.72:8442/api/file/",
headers: {"Authorization": "3238562439e44fcab4036a24a1e6b0fb"}
});
Es funktioniert gut in Firefox 18, Opera 12.12 und Rekonq 2.0 (verwendet auch WebKit), aber in Google Chrome funktioniert nicht (versucht Versionen 21 und 24). In Google Chrome wird die Option OPTIONS angezeigt. Die Ressource konnte im Netzwerkinspektor nicht geladen werden, und der Anwendungsserver erhält keine Anforderung. Ich habe jQuery 1.8.3 und 1.9.0 versucht.
Request URL:https://192.168.1.72:8442/api/file/
Request Headers
Access-Control-Request-Headers:accept, authorization, origin
Access-Control-Request-Method:GET
Cache-Control:no-cache
Origin:https://192.168.1.72:8480
Pragma:no-cache
Wenn ich entfernen Header aus der Anforderung dann erhalte ich 401 auch in Google Chrome und es ist in der Lage, die Ressource im Fall der Genehmigung für den Zugriff auf Anwendungsserver deaktiviert. Es spielt keine Rolle, welche Header gesendet werden. Nur Header, den ich senden kann, ist {"Content-Type": "plain/text"}. Alle anderen Header-Namen/Werte geben einen Fehler in Google Chrome, funktionieren aber in allen oben genannten Browsern.
Warum Google Chrome behandelt Header in CORS-Anfrage nicht?
Versuchen 'GENEHMIGUNGS mit einem gemeinsamen' a' – Musa
@Musa: Noch gleich. –
Können Sie die Anforderungs- und Antwortheader für die OPTIONS-Anfrage auflisten?Der Server sollte mit folgenden Antworten antworten: 'Access-Control-Allow-Origin: *' 'Zugriffssteuerungs-Erlauben-Methoden: GET, PUT, POST, DELETE' ' Zugriffskontrolle-Zulassen-Header: accept , Autorisierung, Herkunft – monsur