Ir para conteúdo
Fórum Script Brasil
  • 0

XMLHTTP não funciona no Firefox


ViaPocket

Pergunta

Peguei este código porque diz que ser compatível com todos os navedagores...mas quando faço um AJAX com ela não roda no Firefox.

Este é o código

// a funcao abaixo funciona em qualquer
 // browser ou versão.  
 function createXMLHTTP() 
 {
  var ajax;
  try 
  {
   ajax = new ActiveXObject("Microsoft.XMLHTTP");
  } 
  catch(e) 
  {
   try 
   {
    ajax = new ActiveXObject("Msxml2.XMLHTTP");
    alert(ajax);
   }
   catch(ex) 
   {
    try 
    {
     ajax = new XMLHttpRequest();
    }
    catch(exc) 
    {
      alert("Esse browser não oferece suporte para Ajax");
      ajax = null;
    }
   }
   return ajax;
   
  }
      var arrSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",
           "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP",
           "Microsoft.XMLHTTP"];
     for (var i=0; i < arrSignatures.length; i++) 
     {
    try 
    {
     var oRequest = new ActiveXObject(arrSignatures[i]);
     return oRequest;
    } 
    catch (oError) 
    {
       }
     }
  
      throw new Error("MSXML não está instalado em seu computador.");
 }
E o AJAX que uso é assim
&lt;script>
function carregaModulos()
{
var objModulos = createXMLHTTP(); 
objModulos.open("post", "Backend/select/curso_abaModulos.asp", true); 
objModulos.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
objModulos.onreadystatechange=function(){
if (objModulos.readyState==3){
document.getElementById("AjaxLoadingModulo").style.visibility = "visible"; 
}
else
if (objModulos.readyState==4){ 
document.all.divModulo.innerHTML = objModulos.responseText;
document.getElementById("AjaxLoadingModulo").style.visibility = "hidden"; 
}}
objModulos.send("txtCodCurso=" + frmCurso.txtCodCurso.value);
objModulos.send();
}
</script>

Só não funciona no Firefox!

Help!

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Aperta Ctrl+Shift+J

quando abrir a janela, clique em limpar.

abra a pagina, e veja o que aparece na aba Erros.

_____________________________________________________________________________

Reparei que você colocou dois objModulos.send;

Remova o ultimo para ver.

Editado por lucas.js
Link para o comentário
Compartilhar em outros sites

  • 0

Opa!!! Descobri o abacaxi!

O Firefox não reconhece o tal de document.all

Fiz a substituição de

document.all.divCompromissos.innerHTML = objCompromissos.responseText;

para

document.getElementById("divCompromissos").innerHTML=objCompromissos.responseText;

e pimba!

Tá funfando no IE 9, FF, Chrome, Opera e Safari.

Porém, numa outra parte do meu site continua não reconhecendo (no FF) esta linha

objReqTreina.send("txtTituloReq=" + frmEvento.txtTituloReq.value);

É algo neste tal de .send

Editado por ViaPocket
Link para o comentário
Compartilhar em outros sites

  • 0

Pronto. Achei o problema do .send()

É que eu estava enviando de forma errada e não tinha capturado os valores (o FF exige isso, já no IE pode passar o nome dos campos mais os valores diretamente na linha do .send()

Tem que ser neste formato

Pega primeiro os valores..

var docForm=document.frmCargo;

var varId = docForm.hiddenCodCargo.value;

...

e depois envia

objAjax.send("id=" + varId);

Agora sim heheh

Editado por ViaPocket
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...