Xhr_object.status et FF -- HELP Please....

nien Messages postés 43 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 31 mars 2008 - 20 mars 2008 à 15:41
nien Messages postés 43 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 31 mars 2008 - 20 mars 2008 à 18:09
J'en deviens fou ...
pour quoi diable FireFox emet un bug au moment de récupéré la valeur xhr_object.status ???
(inutile de préciser que tout ca marche trrreeees bien avec IE étonnant non ?)

Voici le code:
function xhtmlrequest(url,autovoir)
    var xhr_object = getXhr();
    var retour = true;
    var checkDossier = false;
    xhr_object.onreadystatechange = function anonymous()
    {
        if(xhr_object.readyState == 4)
        {   
            if(xhr_object.status==200)
            {
                if(xhr_object.responseText!="0")
                {
                    retour = false;
                }
                else
                {
                    retour = true;
                    checkDossier = true;
                }
            }
            else
                retour = false;
        }
    }
    xhr_object.open("GET", url, false);
    xhr_object.send(null);
    return(retour);
}
Voici le code erreur recupéré dans la console d'erreur :


Erreur nsIXMLHttpRequest.status 0x80040111 (NS_ERROR_NOT_AVAILABLE)

Merci a vouuus !!

6 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 mars 2008 à 15:58
Bonjour,

    je suppose que xhr_object = new XMLHttpRequest();    est correct si on est avec FF.

    t'as essayé avec xhr_object.open("GET", url, true);

    j'ai déjà du utiliser :

        if ( !ie )
        { netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');    }
          derrière l'open, avant le send
          ne me souviens plus dans quelles circonstances ...

    sinon, comme ça, au 1er coup d'oeil... rien ne me saute aux yeux,
             mais pas de raisons... ça doit baigner.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
nien Messages postés 43 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 31 mars 2008
20 mars 2008 à 16:12
yes j'ai essayer avec le flag a true mais ca ne marche plus avec IE (allez savoir pourquoi...) et de plus la variable retour ne change pas de valeur...
sinon je viens d'essaye ton code mais rien n'a faire ca marche toujours pas ... Merci qd meme :)
Le plus étrange c'est que ce code marche si, dans la page appelée url on fait juste un $_GET[] des parametre passé dans url.
           - ex d'url : mapage.php?test=ok
bref j'ai donc l'impression vient du fichier que je lit....
voici le code php du fichier en question  :
<?php

header("Pragma: no-cache");
header("Expires: 0");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Content-type: text/html; charset=iso-8859-1");

// le projet recherché
$idprojet = $_GET["idprojet"];
$dir_name = ini_get("session.save_path");
$dir = opendir($dir_name);
$i=0;
$max_time = ini_get("session.gc_maxlifetime");
// on cherche dans les fichiers de sessions
while (($file_name = readdir($dir)) && ($i==0))
{
    $file = $dir_name . "/" . $file_name;
    $lastvisit = filemtime($file);
    $difference = mktime() - $lastvisit;
// si fichier de session pas expiré   
    if (is_file($file) && (filesize($file)>0) && ($difference < $max_time) && (strstr($file_name,"conseiller") || strstr($file_name,"internaute") || strstr($file_name,"intrabao")))
    {
        $contenuFile = fread(fopen($file,'r'),filesize($file));
// si on trouve le projet       
        if(strstr($contenuFile,substr($idprojet,3)))
        {
// on cherche l'utilisateur          
            $chaine = strstr($contenuFile,"idapport");
            $i =substr($chaine,14,5)."\n\rfichier : ".$file_name;
        }
    }
}
closedir($dir);
// on ecrit l'utilisateur
echo($i);
?>

Bref tout ca pour faire un systeme d'acces unique a un projet dans une collection de projet...
MErci bien pour l'attention !
0
nien Messages postés 43 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 31 mars 2008
20 mars 2008 à 16:24
heuuu je viens de voir ca sur un forum .. c'est vrai ou c'est du bluff????
        le onreadystatechange ne fonctionne qu'en asynchrone.
<!-- BEGIN TEMPLATE: bbcode_code -->
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 mars 2008 à 16:33
Bonjour,

>>  le onreadystatechange ne fonctionne qu'en asynchrone.

       c'est ce que je te suggèrais  avec true ! ( asynchrone )

>> et ça ne marche pas là, avec IE....
          je me répète, mais aucune raison non plus !

>>retour ne change pas de valeur...
   parce que  la réponse n'est pas = 0 ?
    if(xhr_object.responseText!="0")...

>>je viens d'essaye ton code mais rien n'a faire ca marche toujours pas ...
    à priori donc ça vient de l'asynchrone....

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nien Messages postés 43 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 31 mars 2008
20 mars 2008 à 17:03
bon ok partons pour mode assynchrone...
j'ai donc un lien mon_lien
En mode synchrone, si retour==false,  alors on ouvre la page mapage.php  normalement. sinon on ne fait rien.
En mode asynchrone que neni... true, false ou undefined... la page mapage.php se charge quand meme...
A tu une solution une idée ou un lien car j'ai epluché le web je n'arive pas a trouver la bonne explication (que je puisse comprendre)
Merci.
0
nien Messages postés 43 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 31 mars 2008
20 mars 2008 à 18:09
bon alors j'ai trouver une solution :
je passe le lien en parametre le la fct JS, je revois false quelque soit la reponsetexte de l'objet xhtmlrequest

et je fait ca :

if(xhr_object.status==200)
            {
                if(xhr_object.responseText!="0")
                {
                    alert("pas possible");
                }
                else
                {
                    window.location = mon_lien.href;
                }
            }

et ca marche ... bon me reste a faire la meme chose pour les formulaires
ouuuu yeahhh

merci de ton aide bultez
0
Rejoignez-nous