2012-02-14 37 views
7

Hedefi iframe olan bir form var.Internet explorer XML yanıtını engelliyor

Formu gönderirken, yanıt XML'dir ve yanıtı analiz eden bir Javascript sahibiyim.

IE'de çalışırken, IE yanıtı kesiyor ve onu bir RSS beslemesi olarak değerlendiriyor, bu yüzden kodum asla yanıt alamıyor. RSS beslemelerini (internet seçeneğinden, içerik sekmesinden) devre dışı bırakırsam her şey yolunda gider.

Yanıtın içerik türünü “text/xml; charset = UTF-8 ”ama yine de çalışmıyor.

Herhangi bir geçici çözüm var mı?

+1

Heh, IE gibi garip şeyler hakkında okumayı seviyorum. – Oliver

cevap

2

En iyi çözüm bu durumda iframe kullanmamaktır. IE'nin http yanıtını yakaladığı ve kendi başına okuduğu gibi geliyor. Bilgileri almak için AJAX araması yapmamanın bir sebebi var mı? Bu zaten tepkisini işlemek için JavaScript dayanarak konum gibi geliyor, bu yüzden bir XMLHttpRequest nesnesini kullanarak sizin için daha iyi olacağını düşünürdüm: http://www.w3.org/TR/XMLHttpRequest/

bu çok karmaşık olursa, jQuery gibi bir kütüphane içine bakmak: has http://jquery.com/ AJAX'ın çağrı yapmak ve yanıtları işlemek için (ve daha basit) işlevler yerleşik.

Bunu genişletmek için, formun gönderme işlevini bir JS işlevine bağlarsınız (veya bunu yapmak için jQuery'yi kullanırsınız) ve form verilerini toplar, bir AJAX isteğine gönderir ve yanıtı ele alırsınız. jQuery, bir formdaki form verisini sunucuya göndermek için ajax() işlevinde kullanıma hazır bilgiler haline dönüştürmek için yerleşik bir işlev serileştirme() işlevine sahiptir. XMLHttpRequest nesnesine aşina değilseniz, bu görev için jQuery gibi bir kitaplık kullanmanızı şiddetle tavsiye ederim.

0

Evet, ayrıca dosya doğru İçerik Eğilimi kullanarak başlıklarıyla çıktı olduğundan emin olun, IE "response.xml" değil "response.php" veya bazı tür ...

alır bunu 'İçerik-Atma: ek; filename = "response.xml" '

+0

Aslında, eklenti düzeni bazen kromda garip çalışır, bu yüzden kullanıcı aracısı bilgilerini okuduğunuzdan ve yalnızca IE'deki ekleri okuduğunuzdan emin olun. Diğer tarayıcılar genellikle içerik türünü doğru olarak ayarlandığı sürece yanıtları doğru olarak kullanır, buna erişmek için kullanılan URL'ye bakılmaksızın. – Brian

1

Tamam, sorun bulundu… Yanıtım XML'de bulunan FEEDBACK etiketleri. IE, bu etiketleri RSS yayınları olarak ele alır. Etiket adının FDBACK olarak değiştirilmesi bu sorunu çözüyor…

MS, neden bu belgelenmiyor ???

İlgili konular