PHP XML IE sorun

6 Cevap php
<?xml version="1.0" ?> 
<NBR>
    <resultGroups>
    <result>Hello</result> 
    </resultGroups>
</NBR>

i PHP ike bu oluşturulan bir n xml var. i kullanarak javascript bu XML retruning yaşıyorum ve düğüm "sonuç" değerini acces çalışıyor

alert($(xmlObj).children('result').text());

Ateş onun çalışma ince. ama IE'de hiçbir şey verir ...

ben bunu nasıl çözebilirim??

6 Cevap

Bu doğru XML Content-Type üstbilgisi gönderme değildir olabilir. Sen Content-Type: text/xml, XML içeriğiyle göndermeleri gerekmektedir. Ayrıca başlıkları ve dosyada hem de doğru charset ayarlamak kontrol etmelidir. IE JS kodu doğru ve XML yanıtı geçerli ise gayet doğru bir XML yanıtı ayrıştırmak gerekir.

Benim tahminim text() fonksiyonu ile ilgisi var olduğunu olacaktır. Kendimi Prototip adam değilim ama ben bir süre önce IE ile benzer bir sorun koştu. Bu DOM bir öğeden textContent değerini çekmeye çalışırken benden geldi. Tüm diğer tarayıcı değerini kapmak olabilir ama IE bana mili veriyordu. Bazı testler yaptıktan sonra, bu ben ile geldi budur:

IE destek element.textContent. Değil Tarayıcıların çoğunda, Firefox gibi, element den textContent değerini çekmek mümkün olacaktır.

Example

<p id="my_element">this is my element</p>
alert($('my_element').textContent); // will alert "this is my element"

IE olarak, element.innerHTML kullanmanız gerekir. Bu istediğiniz değeri dönecektir. Şu anda, ben text() textContent değeri dönen ve hiçbir zar alıyoruz neden olduğunu varsayalım.

Example

<p id="my_element">this is my element</p>
alert($('my_element').innerHTML); // will alert "this is my element"

Bu yardımcı olur umarım!

SSL genelinde bu yüklüyoruz?

Bazen SSL üzerinden XML yüklenmemesi IE bilinen bir sorun vardır:

http://support.microsoft.com/default.aspx?scid=kb;en-us;272359

Bu sayfa, onu nasıl çözüleceği hakkında daha fazla bilgi içerir:

http://www.blog.lessrain.com/flash-nasty-xml-load-bug-in-internet-explorer/

Lütfen senin başlıklarını size Content-Type and charset belirterek olduğunuzu emin olun, ve charset (utf-8 kullanıyorsanız) {[(3 olduğunu )]} ve not utf8. IE ikincisi tanımıyor ve size rahatsız etmez.

Yani, başlık şu belirtmek istiyorum:

Content-Type: application/xml; charset=utf-8

Bunu alert'ing önce verileri ayrıştırma, ve muhtemelen yerine bulmak kullanarak denediniz mi?

var node_text = $(xmlObj).find('result').text();
alert(node_text);

Herkes IE garip şeyler yapmak seviyor bilir - Aksi i ({[) (0]} gibi) farklı bir şey için sonuç etiketini değiştirmek için denemenizi öneririz! :)

Içinde ise, o zaman deneyin:

alert($(xmlObj).children('resultGroups').children('result').text());

ya, siz deneyebilirsiniz:

alert($($($(xmlObj).children('resultGroups')).children('result')).text());

hatta:

alert($($(xmlObj).children('result')).text());

Bu işin varsa bana bildirin.