2011-05-24 9 views
6

Dokümantasyonu okumaya çalışıyorum ve bunu itiraf etmeliyim ki, bu kolay bir okuma değildir. ResponseText'i okumak için herhangi bir sorunum yok (Access-Control-Allow-Origin başlığını ekledikten sonra), ancak Firefox dışındaki herhangi bir yerde yanıt üstbilgisini alamıyorum.Etki alanı ajax aracılığıyla yanıt üstbilgisini nasıl alabilirim?

Benim sorum, etki alanı ajax kullanarak yanıt üstbilgisini almanın doğru yolu nedir?

(Access-Control-Expose-Headers) kullanmayı denedim, ancak yine de üstbilgisini okuyamadı.

cevap

16

Bu nedenle çalışması gereken, istemcinin Access-Control-Expose-Headers üstbilgisinde erişmesini istediğiniz üstbilgileri belirtmenizdir. Örneğin, sunucu bir Foo yanıt başlığını ayarlar ve istemci bunu okumak mümkün olmasını istiyorsanız, sunucu da aşağıdaki başlığı gönderir olmalıdır:

istemci tarafında
Access-Control-Expose-Headers: Foo 

, okuyabilir tüm xhr.getAllResponseHeaders() öğesini arayarak yanıt üstbilgileri. Bu, daha sonra aşağıdaki kodu kullanarak bir nesne haline ayrıştırmak bir dize olarak yanıt başlıklarını döndürür: https://gist.github.com/706839 nasıl işler gerektiği işin bir açıklama var

. Ancak, yanıt tarayıcılarının istemcide okunamayacağı eski tarayıcılarda bir hata olduğunu unutmayın. Daha fazla bilgi için buraya bakın: CORS xmlhttprequest HEAD method

+0

Merhaba, sunucu tarafı API'sine aşağıdakileri ekledim. header (Access-Control-Allow-Headers: temp '); '' header (' Access-Control-Expose-Headers: temp); '' header ('temp:'. 12345); 'Ben bir cURL yaparken API isteğinde, üstbilgileri yanıt verisiyle birlikte alırım. Ama aynı API'ye bir AJAX çağrısı yaptığımda, sadece başlık olmadan verileri aldım. –

+0

Anish, yorumunuz kendi Stack Overflow sorusu olarak daha uygun geliyor. – monsur

+0

Bu soru/cevap bugün bile geçerlidir. – refactor

1

Aynı sorun vardı ve bu, webmaster'da sabitlenmiş olan Chromium e-posta listesine yanıt buldu ve crhomium ~ 19'da uygulanacak.

Konuyu bulmaya ve yanıtımı güncellemeye çalışacağım.