Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gabriel_mangueboy

XMLHttpRequest no ie8

Recommended Posts

Estou tendo um pequeno problema no ie8.

 

Criei uma funçao pra instaciar meu XMLHttpRequest

Está +- assim.

function requisicao() {
	var req;
	if(window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		if (req.overrideMimeType){
				req.overrideMimeType('text/xml'); // ORIG
		}
		alert('outros');
	} else if(window.ActiveXObject) {
		//req = new ActiveXObject("Microsoft.XMLHTTP");
		try {
			req=new ActiveXObject("Msxml2.XMLHTTP");
			alert("Msxml2.XMLHTTP");
		}
		catch (e){
			try{
				req=new ActiveXObject("Microsoft.XMLHTTP");
				alert("Microsoft.XMLHTTP");
			} catch (e) {
			
			}
		}
	} else {
		alert('Erro no ajax');
	}
	
	return req;
}

E uma função para inserir um comentário no banco e depois exibir os comentarios.

essa é a minha função para exibir os comentários.

function consultarComentarios(tabela, id_noticia, qnt, inicio) {
	var url = "comentarios.php?tabela=" + tabela + "&id=" + id_noticia + "&qnt=" + qnt + "&inicio=" + inicio;
		
	var req = requisicao();
	
	req.open("GET", url, true);
	req.send(null);
	
	req.onreadystatechange = function() {
		//alert( 'State: ' + req.readyState + ' Status: ' + req.status );
		if(req.readyState == 4 && req.status == 200) {
			var resposta = req.responseText;
			//alert(resposta);
			document.getElementById('comentarios').innerHTML = resposta;
		}
	}
}

e essa para gravar o comentario

function inserirComentario(url) {
	var req = requisicao(req);
	
	url += 	"&nome=" + document.getElementById('nome').value +
			"&email=" + document.getElementById('email').value +
			"&comentario=" + document.getElementById('comentario').value;

	req.open('POST', url);
	req.send(null);
	
	req.onreadystatechange = function() {
		if(req.readyState == 4 && req.status == 200) {
			var resposta = req.responseText;
			if( resposta == "0" ) { 
				//alert('Seu comentário foi registrado com sucesso!');
			} else {
				alert('Erro ao tentar registrar o comentário!');
			}
		}
	}
}

no ff dá tudo certo. no chrome tbm.

mas no ie8, que é o que eu tenho, não da certo.

o req.responseText da função consultarComentarios sempre retorna em branco.

 

Acredito que seja alguma coisa na hora de instanciar o XMLHttpRequest.

Mas não sei o porque.

 

Alguem pode me ajudar nisso ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

debug:

var req = requisicao();
alert( req );//informe oque retorna nesse alert
mas ai, isso é meio estranho.. melhor seria que o escopo dessa variavel req, fosse global.

 

o instanciamento me parece estar insuficiente.. troque por este:

http://forum.imasters.com.br/index.php?/topic/384836-carregando-pagina-com-ajax-nao-consigo-encontrar-o-erro/page__view__findpost__p__1498911

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu ai William Bruno, mas eu descobri que o problema era na hora de colocar a funcao no action do form.

 

O meu problema agora é com o innerHTML.

document.getElementById('comentarios').innerHTML = resposta;

no ff e no chrome ta funcionando.

pesquisei na internet e vi que o ie8 tem esse problema com o innerHTML mesmo.

Mas não achei nenhum jeito de resolver.

 

Voce ja passou por isso ??

 

So corrigindo a minha resposta

 

o innerHTML funciona quando eu carrego a pagina.

mas quando eu uso a funcao novamente ele nao funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que não tenta com um framework? Talvez usando a função .html() do jQuery Ajax, o problema do innerHTML seja resolvido, se não, provavelmente o .text() irá funcionar :]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.