Wie bekomme ich den response-header per cross-domain-ajax?
Ich versuche, Dokumentation zu Lesen, und ich muss gestehen es ist nicht einfach zu Lesen. Ich habe kein problem (nach dem hinzufügen von Access-Control-Allow-Origin-header) zu Lesen responseText, aber nicht bekommen, response-header überall, außer Firefox.
So, meine Frage ist, was ist der richtige Weg, um response-header, mit cross-domain ajax?
Ich habe versucht, zu verwenden (Access-Control-Expose-Headers), aber wieder, Fehler beim Lesen der header.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Also So wie es funktionieren sollte, ist, dass Sie angeben, die Kopfzeilen, die Sie möchten, dass der client Zugriff haben, in die Access-Control-Expose-Headers-header. Zum Beispiel, wenn Ihr server setzt ein Foo-Antwort-header, und Sie möchten, dass der client in der Lage sein, es zu Lesen, dein server sollte auch senden Sie die folgende header:
Auf der client-Seite können Sie Lesen, alle die Antwort-Header durch den Aufruf xhr.getAllResponseHeaders(). Dieser gibt die Antwort-Header als string, welche Sie dann analysieren und in ein Objekt mit dem folgenden code: https://gist.github.com/706839
Dass eine Erklärung der Dinge, wie Sie sollte Arbeit. Beachten Sie jedoch, dass es einen Fehler in älteren Browsern, wo die Antwort-Header kann nicht gelesen werden auf dem client. Siehe hier für mehr details: CORS xmlhttprequest-HEAD-Methode
header(Access-Control-Allow-Headers: temp');
header('Access-Control-Expose-Headers: temp);
header('temp: '. 12345);
Wenn ich eine cURL-Anfrage an die API, ich bekomme die überschriften zusammen mit der response-Daten. Aber wenn ich ein AJAX-call auf die gleiche API, bekomme ich nur die Daten, ohne header.Ich hatte das gleiche problem, und fand die Antwort auf Chrom-mailing-Liste, dass dies behoben wird, die in webkit, und es wird umgesetzt in crhomium ~19.
Werde ich versuchen, zu finden Thema und update meiner Antwort.