[Ajax]Permission refusée d'appeler la méthode XMLHttpRequest

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [Ajax]Permission refusée d'appeler la méthode XMLHttpRequest

par kmeleon » 20 juil. 2007, 15:28

Bien, alors je le saurais pour la prochaine fois :)
Merci en tout cas, et bonne journée !

par Sékiltoyai » 20 juil. 2007, 15:22

En fait j'accédais au serveur en oubliant le www. avant l'adresse, et, allez savoir pourquoi, comme ça ça marche niquel... :?

Quelqu'un saurait pourquoi ?
Bah www.example.com et example.com, c'est pas la même adresse, c'est tout...
Il faut arrêter de considérer que tous les sites sont www.quelquechose.com, www, c'est un sous domaine comme un autre, c'est simplement le plus utilisé...

par kmeleon » 20 juil. 2007, 02:33

Eh bien en fait j'ai trouvé d'où venait l'erreur, mais je saurais pas expliquer pourquoi...
En fait j'accédais au serveur en oubliant le www. avant l'adresse, et, allez savoir pourquoi, comme ça ça marche niquel... :?

Quelqu'un saurait pourquoi ?

PS: J'ai aussi de l'url-rewriting...

par sadeq » 19 juil. 2007, 22:58

tu devrais ajouter un test de l'objet xhr avant son utilisation comme ça:

Code : Tout sélectionner

... if (xhr) { xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { str = xhr.responseText; loginAction(str); } } xhr.open("POST", 'requests/login.php', true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhr.send("refer=1&member_name="+member_name+"&member_password="+member_password); }//fin if xhr ...

[Ajax]Permission refusée d'appeler la méthode XMLHttpRequest

par larryg » 18 juil. 2007, 14:44

Hello !

Voilà j'ai un petit problème, concernant cette page: http://canalpc.fr/new/ (identifiants test2/test2). Chez moi, la connexion se passe très bien, mais chez mes amis codeurs, il y a une erreur.
Voilà l'erreur:

Code : Tout sélectionner

Erreur : uncaught exception: Permission refusée d'appeler la méthode XMLHttpRequest.open
Mais comment régler ça ?

Pour info, voici le code AJAX pour le login, et la page PHP qui lui est attribuée:

ajax.js :

Code : Tout sélectionner

// Request Login (va interroger requests/login.php, récupère l'echo, et le renvoie vers loginAction(); ) function login (form, page, args) { page_var = page; args_var = args; form_var = form; var xhr = getXhr(); member_name = document.forms[form].member_name.value; member_password = document.forms[form].member_password.value; // On teste si les champs ne sont pas vides if (member_name == '') { document.getElementById("cell_member_name").className = 'red'; document.getElementById("div_member_name").innerHTML = "<div class='erreur'>!</div>"; } else if (member_password == '') { document.getElementById("cell_member_password").className = 'red'; document.getElementById("div_member_password").innerHTML = "<div class='erreur'>!</div>"; } else { xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { str = xhr.responseText; loginAction(str); } } xhr.open("POST", 'requests/login.php', true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhr.send("refer=1&member_name="+member_name+"&member_password="+member_password); } }
login.php :
session_start();
$_SESSION["auth"] = 1;
include ("../config.php");

# Rappel:
# {1} = Connexion réussie
# {2} = Mauvais member_name
# {3} = Mauvais member_password

$query = "SELECT member_id,member_password FROM cpc_members WHERE member_name='". mysql_real_escape_string($_POST["member_name"]) ."'";
$sql = mysql_query ($query);
if (mysql_num_rows($sql) == 0)
{
    echo "2";
}
else
{
    $result = mysql_fetch_object($sql);
    if (md5($_POST["member_password"]) == $result->member_password)
    {
        $_SESSION["member_id"] = $result->member_id;
        $_SESSION["login"] = 1;
        echo "1";
    }
    else
    {
        echo "3";
    }
}
Edit: le code d'appel de xhr:

Code : Tout sélectionner

function getXhr() { if (window.XMLHttpRequest) return new XMLHttpRequest(); else if (window.ActiveXObject) { try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { return new ActiveXObject("Microsoft.XMLHTTP"); } } else { return false; alert ("Votre navigateur ne supporte pas la technologie Ajax."); } }
Désolé pour la longueur du message, en espérant qu'il n'y a pas eu de relachement :)

Bonne journée