Jump to content
Fórum Script Brasil
  • 0

XMLHTTP não funciona no Firefox


ViaPocket

Question

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 to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 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.

Edited by lucas.js
Link to comment
Share on other 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

Edited by ViaPocket
Link to comment
Share on other 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

Edited by ViaPocket
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...