IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Détecter appel Ajax en php


Sujet :

AJAX

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 113
    Points : 73
    Points
    73
    Par défaut [AJAX] Détecter appel Ajax en php
    Hello à tous

    Je cherche le moyen, dans mon code php, de détecter si l'appel au serveur provient d'une requête HTTP classique ou d'un XMLHTTPRequest.

    Et ce, quel que soit l'appel fait. Ceci afin d'éviter la conservation des données à but statistique si l'appel est fait de l'ajax, et n'est donc pas un nouveau chargement de page complet.

    Merci d'avance !

  2. #2
    Membre confirmé Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    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 : 551
    Points
    551
    Par défaut
    Bonjour,

    En toute logique, les requêtes ne seront pas faites sur les mêmes URL(donc pas sur les mêmes scripts PHP), si c'est de l'ajax ou une requête classique du navigateur, non ? Les données renvoyée ne sont pas les mêmes (une page complète où un jeu de données)

    En tous cas, il s'agit dans les deux cas de requêtes HTTP, qui est un protocole, donc dans l'absolu rien ne permet de les distinguer sur le serveur.

    Par contre, tu as toujours la possibilité de modifier l'appel fait avec XmlHttpRequest afin de passer un paramètre précisant le type de requête par exemple...

  3. #3
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Tu peux aussi rajouter un header dans tes requetes XmlHttp, c'est ce que beaucoup de frameworks font.

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 113
    Points : 73
    Points
    73
    Par défaut
    Merci pour vos réponses

    Le souci, c'est que j'ai un script qui s’exécute absolument à chaque chargement de page, et ce sur une vingtaine de sites. J'aurais aimé pouvoir détecter dans ledit script si c'est de l'ajax, afin de pouvoir lui préciser d'éviter de faire certaines opérations statistiques si c'est le cas.

    Mettre un marqueur sur les pages dédiées au traitement et au renvoi des données avec Ajax est une option, que j'utilise pour le moment, mais maintenir un tel système sur autant de sites s'avère vite très fastidieux, en plus d'être un nid à bugs.

    Voila pourquoi j'aurais aimé être capable de détecter, en toutes circonstances et indépendamment de la page, s'il s'agit d'ajax.

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par DoubleU
    Tu peux aussi rajouter un header dans tes requetes XmlHttp, c'est ce que beaucoup de frameworks font.
    C'est bien ce que te propose DoubleU

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 113
    Points : 73
    Points
    73
    Par défaut
    C'est vrai, je pourrais aussi faire cela... Mais dans le cas où je n'aurais pas accès au code JS ? Ce n'est pas moi qui développe ces sites, et les équipes en charge tournent régulièrement, aussi il se peut que quelqu'un modifie le JS / ajoute un appel Ajax sans nécessairement être au courant du fait qu'il faut lui intégrer un header...

  7. #7
    Membre confirmé Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    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 : 551
    Points
    551
    Par défaut
    Rien ne différencie une requête HTTP d'une autre requête HTTP(pour le serveur).

    Si tu n'as pas la main sur toutes les sources des requêtes, tu ne peux que faire la distinction sur la cible de la requête...

    Peut-être que tu peux organiser correctement les pages de traitement afin de ne pas y inclure le script ? Une sorte de template dédiés aux traitements Ajax ? Où un sous-dossier particulier ?

    Si la solution semble complexe à maintenir, c'est sans aucun doute un défaut de convention et/ou d'organisation sur le serveur... C'est une question de design !

    J'avoue ne pas avoir rencontré ce problème, puisque je pars toujours du principe que des pages destinées à afficher du HTML ne seront pas appelé en Ajax, et que des pages dédiées à des traitements ne renverront pas les données au format HTML...

    [mode troll on] Vive le JSON [/mode troll off]

    Et j'ai du mal à voir dans quel cas l'Ajax servirait à charger un document HTML complet ...

  8. #8
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 113
    Points : 73
    Points
    73
    Par défaut
    Ah non, c'est pas un document html complet :p

    c'est plutot que les pages appellent la config, où se déroule le script... Toutes les pages appellent la config. De toute façon, je suis d'accord avec toi, quand j'ai un boulot à faire, je sépare aussi le traitement de l'affichage... Mais c'est pas moi qui bosse sur ces sites, je fais qu'y intégrer un script

    Mais bon, c'est bien comme je pensais, le seul moyen de différencier c'est d'utiliser un header particulier, comme le X_REQUESTED_WITH des frameworks... Vais voir si je peux pas les pousser à tout faire via jquery pour l'ajax, tiens.

    Merci à tous, je passe en résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Détecter appel Ajax en php
    Par JerryOne3 dans le forum Langage
    Réponses: 2
    Dernier message: 21/06/2011, 11h59
  2. [AJAX] javascript et ajax apres appel div
    Par mrtechno01 dans le forum AJAX
    Réponses: 7
    Dernier message: 28/10/2010, 18h22
  3. Réponses: 2
    Dernier message: 03/09/2010, 14h00
  4. [AJAX] détecter fin de session PHP en Javascript
    Par jason69 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/06/2008, 12h44
  5. [AJAX] deux appels ajax qui refusent de cohabiter
    Par chelguera dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/11/2007, 16h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo