Ir para conteúdo

POWERED BY:

Arquivado

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

KMRodrigo

Problema Ajax-Json no IE

Recommended Posts

Pessoal, tenho uma função capturar informações de um WebService por Json que funciona em "todos" os navegadores exceto no Ie.

 

O código já havia apresentado outros problemas que consegui resolver (dps de muita lida no "stackoverflow" e aqui no iMaster), mas dessa vez emperrei.

 

 

O Ie me da o retorno:

 

Mensagem: O objeto não dá suporte para a propriedade ou método
a linha do erro é:
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
e o código é

function SendData(url, dados, AjaxResponseFunction) {
var ajax;
   
  
        if(window.XDomainRequest) 
        {
            ajax = new XDomainRequest();
        }
        else if(window.XMLHttpRequest) 
        {// Mozilla, Safari, Novos browsers...
            ajax = new XMLHttpRequest();
} 
        else if(window.ActiveXObject) 
        {// IE antigo
            ajax = new ActiveXObject("Msxml2.XMLHTTP");
            if(!ajax) 
            {
                ajax = new ActiveXObject("Microsoft.XMLHTTP");
            }
}
        
        
if(ajax) 
        {
            ajax.onreadystatechange = function trataResposta() {
                if(ajax.readyState === 4) {
                    AjaxResponseFunction(ajax.status, ajax.responseText);
                }
            };
        //definir o tipo de método
        ajax.open("POST", url, true);
 
        //definir o encode do conteúdo
        ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 
        //enviar os dados
        ajax.send(dados);
}
}

Podem me ajudar por favor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Mensagem: O objeto não dá suporte para a propriedade ou método

 

veja a linha do erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, mas isto eu v e não resolve o problema, tentei usar outros meios mas não deu certo, vc apenas informou novamente o problema o.O.

 

Alguem pode me dizer o que posso fazer para substituir o ajax.setRequestHeader() ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

com qual versão do IE vc esta testando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe a demora, Shini, esqueci de falar, obrigado por tentar ajudar. Vamos lá

 

Estou com Ie8.

 

Antes eu tinha um erro no ajax.open de "Could support". Ai fiz os ifs

 

if(window.XDomainRequest)          {             ajax = new XDomainRequest();         }         else if(window.XMLHttpRequest)          {// Mozilla, Safari, Novos browsers...             ajax = new XMLHttpRequest(); }          else if(window.ActiveXObject)          {// IE antigo             ajax = new ActiveXObject("Msxml2.XMLHTTP");             if(!ajax)              {                 ajax = new ActiveXObject("Microsoft.XMLHTTP");             } }

e com isso funcionou o ajax.open (aparentemente o que fez funcionar foi o

 

if(window.XDomainRequest)          {             ajax = new XDomainRequest();         }  

 

A resposta que estou pegando é JSON.

 

Se eu mudar o


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

 

para "application/json" ai não funfa em nenhum navegador.

 

Mas acho que não é isso, aparentemente não reconhece o próprio "setRequestHeader"

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa o ajax do jquery é mais simples.

 

 

usa o ajax do jquery é mais simples.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Infelizmente não posso, o magento usa Prototype, importar o jQuery pode dar problema e o material do Prototype é complicado, se alguem tiver um link que ensina a usar isto no Prototype eu agradeço.

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.