JQuery, quando XML não é lido no IE

JQuery, quando XML não é lido no IE

jun 10

Beleza! Entregando o sistema e quando vou testar minhas combos dinâmicas (jquery+ajax) no IE7… catapimba! Simplesmente não funciona. O arquivo xml está no lugar, os eventos estão funcionando, funciona no FF, Chrome etc etc. Digito no google e percebo que é um problema razoavelmente comum.

Eis o código:

1
2
3
4
5
6
7
8
9
10
11
$.get("<?php echo $this->baseUrl(); ?>/webserver/cidades/idu/"+idestado, function(data) {
	var $options = "";
	$(data).find("field").each(function() {
		var $field = $(this);
		$selected = (idcidade==$field.find("id").text()) ? ' selected="selected" ' : "";
		$options = $options + '<option value="' + $field.find("id").text() + '" label="' + $field.find("cidade").text() + '" ' + $selected + '>' + $field.find("cidade").text() + '</option>'
	});
	$("#idcidade").empty();
	$("#idcidade").append($options);
	$("#idcidade").removeAttr("disabled");
});

Aparentemente o erro está em $(data).find(“field”) que devolve um objeto vazio no IE.
Solução I:Mudar o content type da página que contém o xml para “text/php”. No caso do Zend-Framework, a action deve ter esse código: $this->_response->setHeader(“content-type”, “text/xml”);

Solução II: O Bug do parse XML no IE com o ajax do jQuery

Compartilhe este post
  • Print
  • Digg
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • LinkedIn
  • Orkut

Leave a Reply