Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/03/2011, 10h52   #1
Membre Expert
 
Avatar de zooffy
 
Homme Erick OZOUF
Développeur Web
Inscription : août 2004
Messages : 3 378
Détails du profil
Informations personnelles :
Nom : Homme Erick OZOUF
Âge : 42
Localisation : France, Morbihan (Bretagne)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2004
Messages : 3 378
Points : 1 330
Points : 1 330
Envoyer un message via MSN à zooffy Envoyer un message via Skype™ à zooffy
Par défaut Envoyer des paramètres avec une requête XmlHttpRequest

Bonjour à tous.

Je ne suis visiblement pas trés doué en Ajax car je n'arrive pas à faire un truc simple que j'ai trouvé dans le tuto de référence, celui là : http://siddh.developpez.com/articles/ajax/

Je programme en ASP.NET, option VB.NET.

J'ai fais une page qui contient une fonction Javascript pour envoyer vers une page ASPX une requête XmlHttpRequest. Tatn que j'envoi rien de particulier avec, tout va bien.
Mais bien sûr, le besoins est tout autre et il faut que j'envoi deux paramettres.
Et là j'ai des erreurs qui me disent : Demande non disponible dans ce contexte
Dans la page d'action.

En fin de message je mets mon code complet de la partie javascript.

Dans le tuto j'ai vu qu'il fallait envoyer les paramettres avec un xhr.send("le nom du paramettre"+"la valeur du paramettre");

Mais dés que je vais ça, y l'erreur qui vient.
A l'autre bout, je tente de récupérer simplement le contenur avec un Request.QueryString("le nom du parametre") et de la concaténer à une chaine de caractére (c'est pour les tests, aprés je ferais un traitement un peu plus lourd avec enregistrement dans la base de données).

Pourriez vous m'aider à comprendre pourquoi je n'arrive pas à récupérer les choses à l'autre bout ?

Mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
 <script type='text/JavaScript'>
        var passage = 0;
        function getXhr() {
            var xhr = null;
            if (window.XMLHttpRequest) // Firefox et autres
                xhr = new XMLHttpRequest();
            else if (window.ActiveXObject) { // Internet Explorer 
                try {
                    xhr = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                    xhr = new ActiveXObject("Microsoft.XMLHTTP");
                }
            }
            else { // XMLHttpRequest non supporté par le navigateur 
                alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
                xhr = false;
            }
            return xhr
        }
        /**
        * Méthode qui sera appelée sur le click du bouton
        */
        function go() {
            if (passage == 1) {
                var xhr = getXhr();
                // On défini ce qu'on va faire quand on aura la réponse
                xhr.onreadystatechange = function() {
                    // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
                    if (xhr.readyState == 4 && xhr.status == 200) {
                        //alert(xhr.responseText);
                    }
                }
                xhr.open("GET", "/frame.aspx", true);
                //xhr.send(null);
                xhr.send("pubid=" + "48");
                xhr.send("userid="+"e9cc08ef-6422-4815-92bb-925a5b145db5");
            }
            passage++;
        }
		</script>
__________________
Mon blog de création d'univers : Qualhiryann
Mon site qui parle de moi moi.ozouf.com
zooffy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 11h11   #2
Membre expérimenté
 
Avatar de nadox
 
Homme
Développeur
Inscription : février 2010
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : Développeur
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2010
Messages : 360
Points : 545
Points : 545
Bonjour,
Les paramètres sont a mettre dans le send si c'est une requête POST. Si c'est une requête GET, il faut les mettrent dans l'url.
Édit : pour utiliser la méthode POST, il faut aussi rajouté cette ligne entre le open et le send :
Code :
1
2
3
 
connection.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); // on précise que le contenu de la requête est bien de type post/formulaire...
connection.send(params); // on envoie la requête
nadox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 11h23   #3
Membre Expert
 
Avatar de zooffy
 
Homme Erick OZOUF
Développeur Web
Inscription : août 2004
Messages : 3 378
Détails du profil
Informations personnelles :
Nom : Homme Erick OZOUF
Âge : 42
Localisation : France, Morbihan (Bretagne)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2004
Messages : 3 378
Points : 1 330
Points : 1 330
Envoyer un message via MSN à zooffy Envoyer un message via Skype™ à zooffy
Hello Nadox, merci pour ton aide.

Bon, une fois tout remis en place, ça marche bien (mais je suis persuadé d'avoi essayé ça au début et ça n'a pas fonctionné, pas grave)

Donc, ça donne ça pour l'instant :
Code :
1
2
3
 
xhr.open("GET", "/frame.aspx?pubid=48userid=e9cc08ef-6422-4815-92bb-925a5b145db5", true);
xhr.send(null);
Alors question subsidiaire : le pubid et le userid sont dynamiques. Je les récupérer dans ma page de base (celle qui contient le code javascript) à partir de la base de donnée avec du code VB.NET. Ce sont des variables de type String que je peux manipuler un peu comme je veux.

EDIT :
merci pour la précision sur le POST, j'en ai pas besoins là, mais je garde pour plus tard.

Autre point : en fait, mes deux paramettres je le reçois en QuesryString de la page, y a peut-être un moyen en javascript pour les récupérer ?
Ce que je ne vois pas bien comment faire, c'est les envoyer dans la chaine qui sert à trouver la page dans le Script.
Aurais tu un conseil à me donner ?
__________________
Mon blog de création d'univers : Qualhiryann
Mon site qui parle de moi moi.ozouf.com
zooffy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 12h01   #4
Membre expérimenté
 
Avatar de nadox
 
Homme
Développeur
Inscription : février 2010
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : Développeur
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2010
Messages : 360
Points : 545
Points : 545
Il faut un & entre les paramètres :
Code javascript :
1
2
3
xhr.open("GET", "/frame.aspx?pubid=48&userid=e9cc08ef-6422-4815-92bb-925a5b145db5", true);
xhr.send(null);
Sinon tu n'en recevra qu'un avec tout ce qui suit le =

Je n'ai pas bien compris ta dernière question.
Pour récupérer les paramètres en javascript il y a
Code javascript :
document.location.search
qui renvoie la querystring.
nadox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 14h08   #5
Nouveau Membre du Club
 
Homme med ben
Étudiant
Inscription : octobre 2010
Messages : 74
Détails du profil
Informations personnelles :
Nom : Homme med ben
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 74
Points : 29
Points : 29
Code :
xhr.open("GET", "emp_maj.php?type=ajouter&idemp="+idemp+"&nom="+nom+"&prenom="+prenom+"&sexe="+sexe+"&typeT="+typeT+"&dateE="+dateE+"&equipe="+equipe, true);
Med_be est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 14h38   #6
Membre Expert
 
Avatar de zooffy
 
Homme Erick OZOUF
Développeur Web
Inscription : août 2004
Messages : 3 378
Détails du profil
Informations personnelles :
Nom : Homme Erick OZOUF
Âge : 42
Localisation : France, Morbihan (Bretagne)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2004
Messages : 3 378
Points : 1 330
Points : 1 330
Envoyer un message via MSN à zooffy Envoyer un message via Skype™ à zooffy
Merci Nadox pour cette petite correction (que j'avais vu un peu avant, mais c'est sympa)

Revenons sur la récupération des paramettres en querystring. Je vais tenter une explicaiton plus claire :
- ma page de base qui affiche mon Iframe (c'est toujours le mêm sujet que l'autre topic) est appellée avec des paramettres en quesrystring tel que ça : http://www.ozouf.maison/wwwBomba/Aff...e.aspx?pubid=4
- dans cette page j'ai mon code javascript qui va faire l'appel xmlHttpRequest et donc envoyer des paramettre en querystring à la page frame.aspx
- vu que se sont les mêmes paramettres, je cherche le moyen de les récupérer direct et de les remettre dedans.

Pour l'instant j'ai fais ça :
Code :
1
2
3
4
5
6
7
qs = document.location.search
                var pubid = qs.get('pubid');
                var userid = qs.get('userid');
                
                xhr.open("GET", "/frame.aspx?pubid="+pubid+"&userid="+userid, true);
                xhr.send(null);
Mais il me dit
Citation:
Détails de l’erreur de la page Web

Message*: Cet objet ne gère pas cette propriété ou cette méthode
Ligne*: 41
Caractère*: 17
Code*: 0
URI*: http://www.ozouf.maison/wwwBomba/Aff...e.aspx?pubid=4
et la ligne 41 c'est celle que j'ai mis en rouge.
Donc, je dois oublier un truc, mais lequel ?
__________________
Mon blog de création d'univers : Qualhiryann
Mon site qui parle de moi moi.ozouf.com
zooffy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 14h49   #7
Membre Expert
 
Avatar de zooffy
 
Homme Erick OZOUF
Développeur Web
Inscription : août 2004
Messages : 3 378
Détails du profil
Informations personnelles :
Nom : Homme Erick OZOUF
Âge : 42
Localisation : France, Morbihan (Bretagne)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2004
Messages : 3 378
Points : 1 330
Points : 1 330
Envoyer un message via MSN à zooffy Envoyer un message via Skype™ à zooffy
heu, je crois que j'ai compris ! document.location.search renvoi toute la chaine de quesrystring en fait, donc je peux la reprendre tel que.

ça donne ça dans le code
Code :
1
2
3
 
xhr.open("GET", "/frame.aspx"+document.location.search, true);
                xhr.send(null);
J'ai bon là ?
__________________
Mon blog de création d'univers : Qualhiryann
Mon site qui parle de moi moi.ozouf.com
zooffy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 16h25   #8
Membre expérimenté
 
Avatar de nadox
 
Homme
Développeur
Inscription : février 2010
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : Développeur
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2010
Messages : 360
Points : 545
Points : 545
Oui, ça devrait être ça, même si il faut peut-être vérifier avec des tests sur les différents navigateur (je ne suis pas sur à 100% que le contenu de location.search soit uniforme).
nadox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 08h15   #9
Membre Expert
 
Avatar de zooffy
 
Homme Erick OZOUF
Développeur Web
Inscription : août 2004
Messages : 3 378
Détails du profil
Informations personnelles :
Nom : Homme Erick OZOUF
Âge : 42
Localisation : France, Morbihan (Bretagne)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2004
Messages : 3 378
Points : 1 330
Points : 1 330
Envoyer un message via MSN à zooffy Envoyer un message via Skype™ à zooffy
Merci pour tout Nadox.

IE, FF et Chrome fonctionne bien, alors ça va.
__________________
Mon blog de création d'univers : Qualhiryann
Mon site qui parle de moi moi.ozouf.com
zooffy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h47.


 
 
 
 
Partenaires

Hébergement Web