it-swarm.com.de

Domänenübergreifende gemeinsame Nutzung von Ressourcen GET: 'Es wurde abgelehnt, den unsicheren Header "etag" von Response abzurufen

Eine einfache GET-Anforderung ohne benutzerdefinierte Header. Die Antwort wird wie erwartet zurückgegeben. Auf die Daten im Body kann zugegriffen werden, nicht jedoch auf die Header.

Wenn ich versuche, auf den "etag" -Header zuzugreifen, lösen Browser eine Ausnahme aus:

Verweigert unsicheren Header "etag" zu bekommen

Chrome, Safari und Firefox verhalten sich alle gleich. Ich habe es nicht auf IE getestet.

Was vermisse ich hier?

50
Mohamed

Bei Verwendung von CORS werden nur einfache Antwortheader angezeigt. Einfache Antwortheader sind definiert hier . ETag ist kein einfacher Antwortheader. Wenn Sie nicht einfache Header verfügbar machen möchten, müssen Sie Access-Control-Expose-Headers Header, wie folgt:

Access-Control-Expose-Headers: ETag

Beachten Sie jedoch, dass ich in Chrome, Safari und Firefox Fehler festgestellt habe, die verhindern, dass nicht einfache Header korrekt angezeigt werden. Dies kann bis jetzt behoben werden, ich bin nicht sicher.

Sie sollten keine Preflight-Anforderung durchführen müssen, da Preflight nur für Nicht-GET/POST-HTTP-Methoden oder nicht-einfache Anforderungsheader (und erforderlich ist Sie fragen nach Antwort Headern).

82
monsur

Haben Sie jemals versucht? AJAX= 2.0 (Cross Domain Sharing) ist eine Methode, die vor kurzem von W3C herausgebracht wurde: http://www.w3.org/TR/XMLHttpRequest2/#ref -Cors

Es gibt auch eine andere Möglichkeit, die JSON-P heißt. Sie ähnelt einer JSON-Anfrage, kann aber für domänenübergreifende Zwecke verwendet werden: http://en.wikipedia.org/wiki/JSONP

Beides kann für die Site-Besitzer sehr gefährlich sein, wenn es nicht richtig eingerichtet ist. Seien Sie also vorsichtig, wenn Sie es verwenden.

[PS] Ich bin mir nicht sicher, ob dies helfen wird: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

2
DarkMantis