Ir para conteúdo

POWERED BY:

Arquivado

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

Stelmaria

Problema com Ajax no IE 6 e IE 7

Recommended Posts

Estou com um código que (como sempre) funciona em todos os browsers, menos nos IE6 e IE7 (no IE8 funciona), segue o código:

 

function create_ajax()
{
	try
	{
		return new XMLHttpRequest();
	}
	catch(ee)
	{
		try
		{	    
			return new ActiveXObject("Msxml2.XMLHTTP");	    
		}
		catch(e)
		{
			try
			{		    
				return new ActiveXObject("Microsoft.XMLHTTP");		    
			}
			catch(E)
			{		    
			}
		}
	}
    
	return false;
}

function ajax(id, pagina)
{
	var conteudo = document.getElementById(id);
	var a = create_ajax();

	a.open("POST", pagina, true);

	a.onreadystatechange = function()
	{
		if (a.readyState == 4)
		{
			conteudo.innerHTML = a.responseText;
		}
	}

	a.send(null);
}

O erro esta em:

conteudo.innerHTML = a.responseText;

 

o a.responseText esta vindo como undefined

 

Alguém sabe o que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mude:

if (a.readyState == 4)
 {
 conteudo.innerHTML = a.responseText;
 }

Para:

if (a.readyState == 4){
 if(a.status == 200){
 conteudo.innerHTML = a.responseText;
 } else 
if(a.status == 404){
	conteudo.innerHTML = "Página não encontrada";
} else {
	conteudo.innerHTML = "Problemas na requisição";
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mude:

if (a.readyState == 4)
 {
 conteudo.innerHTML = a.responseText;
 }

Para:

if (a.readyState == 4){
 if(a.status == 200){
 conteudo.innerHTML = a.responseText;
 } else 
if(a.status == 404){
	conteudo.innerHTML = "Página não encontrada";
} else {
	conteudo.innerHTML = "Problemas na requisição";
}
}

 

 

Continua dando erro no mesmo lugar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim...

 

O que aparece?

if (a.readyState == 4){
 if(a.status == 200){
 conteudo.innerHTML = a.responseText;
 alert(a.responseText);
 } else 
if(a.status == 404){
 conteudo.innerHTML = "Página não encontrada";
} else {
 conteudo.innerHTML = "Problemas na requisição";
}
}

Achei o problema...

 

você está fazendo uma requisição POST, mas não está enviando dado algum [send(null)]...

 

Mude:

a.open("POST", pagina, true);

Por:

a.open("GET", pagina, true);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim...

 

O que aparece?

if (a.readyState == 4){
 if(a.status == 200){
 conteudo.innerHTML = a.responseText;
 alert(a.responseText);
 } else 
if(a.status == 404){
 conteudo.innerHTML = "Página não encontrada";
} else {
 conteudo.innerHTML = "Problemas na requisição";
}
}

Achei o problema...

 

você está fazendo uma requisição POST, mas não está enviando dado algum [send(null)]...

 

Mude:

a.open("POST", pagina, true);

Por:

a.open("GET", pagina, true);

 

 

Coloquei GET e não adiantou.

 

Não aparece nenhum erro, só no canto inferior esquerdo q fica aquele símbolo de erro, falando: "Erro em tempo de execução desconhecido", e fala a linha do erro, que continua sendo a mesma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente usar isto aqui:

http://forum.imasters.com.br/index.php?/topic/359316-classe-ajax/

 

Olhe os exemplos de como usar... o seu caso é o mais simples deles

 

Copie o código e cole num arquivo JS e inclua na sua página, depois faça:

 

var ajax = new myAjax();
ajax.load("PAGINA.PHP", "ID DA DIV");

Use o Firefox e veja se aparece algum erro no console...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando usa o metodo post deve se usar:

setRequestHeader("Content-Type","application/x-www-form-urlencoded");

 

antes de

a.onreadystatechange = function()
:

Coloque:

a.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso daí é para o caso de uma requisição POST, mas se vir mais acima, sugeri mudar para GET e não funcionou...

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.