Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem responseText nevrací žádný výsledek

Zdravím, potřeboval bych poradit. Mám univerzální script, který by měl vrátit do proměnného elementu určitý php výstup. Nemůžu zaboha přijít proč mi responseText nic nevrací, při kontrolním výpisu ze status mi to vrací 0, což mi nemustí podmínka a což znamená, že se nevrací žádný výsledek.

function request(nacitani, vypis){
  if(nacitani==null){
    var nacitani="ajax_okno";
  }
  if(vypis==null){
     var nacitani="ajax_okno";
   }
   if (httpR.readyState == 4 && httpR.status == 200){
     if(nacitani!=vypis){
       var nacitam = document.getElementById(nacitani);
       nacitam.innerHTML = "";
     }
     var vypis = document.getElementById(vypis);
     vypis.innerHTML = httpR.responseText;
   }
   else{
     if(nacitani!=vypis){
       var vymaz = document.getElementById(vypis);
        vymaz.innerHTML="";
     }
     var nacitam = document.getElementById(nacitani);
     nacitam.innerHTML = '<div class="loading"><center><img src="http://mujweb/jscript/loading_bar.gif" /></center></div>';
   }
}
            
function ajax(akce, nacitani, vypis, promena1, promena2, promena3, promena4){
  if (window.ActiveXObject){
    httpR = new ActiveXObject("Microsoft.XMLHTTP");
  }
   else{
     httpR = new XMLHttpRequest();
   }
 
   httpR.open("POST", 'http://mujweb/configuration/ajax.php', true);
   httpR.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
   httpR.send('akce='+akce+'&promena1='+promena1+'&promena2='+promena2+'&promena3='+promena3+'&promena4='+promena4);
   
   httpR.onreadystatechange= function () {  
     request(nacitani, vypis);
   };    
}

Už nad tím sedím slušnou dobu a už jsem pomale zoufalej, protože už fakt nevím v čem by to mohlo být. Do php scriptu jsem si zkusil udělat i echo, které by se mělo vždy vypsat, i přes to se nic nevrací. Můžete někdo poradit?

Předmět Autor Datum
Nikde nevidím, že bys tam měl to httpR definovaný.
Wikan 07.07.2013 16:15
Wikan
Definovaný to mám hned na začátku fce ajax
Stitch 07.07.2013 16:23
Stitch
va :-D. Tak tohle je už moc. Použij JQuery, tam to máš zabalené funkční v jedné fci.
Flash_Gordon 07.07.2013 16:41
Flash_Gordon
To máš no. Jenže to platí jenom uvnitř té funkce. V té druhé to nijak definované nemáš.
Wikan 07.07.2013 18:42
Wikan
Nemá to nikde deklarované pomocou var, takže sa to použije ako globálna premenná. Je to síce prasáre… poslední
los 07.07.2013 19:01
los
Pozri si, čo ukazuje prehliadač v logu na záložke konzoly (k nej sa dostaneš pomocou F12 alebo Ctrl+…
los 07.07.2013 17:41
los

Pozri si, čo ukazuje prehliadač v logu na záložke konzoly (k nej sa dostaneš pomocou F12 alebo Ctrl+Shift+I alebo nejako podobne - závisí od prehliadača). Prípadne na záložke so sieťovou komunikáciou.

Pravdepodobne je problém v tom, že robíš požiadavku na inú doménu. Ak to máš na rovnakej doméne, použi radšej relatívnu URL adresu. Ak to máš na inej doméne, budeš musieť na serveri nastaviť správne CORS hlavičky.

Mimochodom, parametre v URL by bolo vhodné URL-zakódovať pomocou funkcie encodeURIComponent.

Zpět do poradny Odpovědět na původní otázku Nahoru