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

jQuery Discussion :

JQuery/JSONP/PHP fontionne sur Firefox, mais pas sur Chrome et Opera


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 56
    Par défaut JQuery/JSONP/PHP fontionne sur Firefox, mais pas sur Chrome et Opera
    Bonjour à tous,

    Je suis en actuellement sur un projet utilisant PHP et JQuery et je dois utiliser dans ce projet des requêtes cross-domain, donc j'utilise JSONP.

    Mes requêtes AJAX fonctionnent toutes sous Firefox, mais pas sous Chrome et Opera.

    J'ai une première fonction qui va exécuter la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    function update()
    {
        $.ajax({
            url : url,
            type : "GET",
            dataType: "jsonp",
            crossDomain : true,
            jsonpCallback : "updateCallback",
            async : false, 
            data : {'session_id' : sessionID,'user' : userName },
            error : function (xhr, status, error) {
                alert("Erreur de chargement du fichier '"+url+"' : "+xhr.responseText+" ("+status+" - "+error+")");
            },
            success: function(){
                alert("Success !");
           }
        });
    }
    Le code de la fonction de callback :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function updateCallback(data)
    {     
        var i = 0;
        var messages = data.messages;
     
        while(i < data.messages.length){  
            appendMessage(data.messages[i]);
            i++;
        }
     
        saveLastMsgID = lastMsgID;
        doUpdate = updateInProgress = false;
    }
    Le script php qui est appelé (je l'ai simplifié au max pour que ce soit plus clair, le reste n'étant pas en rapport direct avec la requête) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <?php
     
        /* ... */ 
        
        function sendResponse($messages,$date)
        {
            header('content-type: application/json; charset=utf-8'); 
            header("Access-control-allow-origin: *");
            header ("Access-Control-Allow-Headers: x-requested-with", true);
            header('Access-Control-Allow-Methods: GET,OPTIONS');
     
            $datas = array();
            
            for($i = 0 ; $i < count($messages) ; $i++){
                $msg = $messages[$i];
                $message = null;
                $message->sender = $msg->getSender();
                $message->date = $date;
                $message->msg = stripslashes($msg->getContent());
                $message->carrier = $carrier;
                $datas[] = $message;
            }
            $data->messages = $datas;
            echo $_GET['callback']. '('. json_encode($data) . ')'; 
        }
    ?>
    Apparemment, Chrome effectue bien la requête, mais je ne reçoit pas la réponse. Donc, je pense que ce serait le JSONP qui serait mal formaté ou qu'une option dans ma requête AJAX est incorrecte.

    Je sèche depuis un bon moment là-dessus, donc si vous avez une idée n'hésitez pas, je suis tout ouïe

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 56
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Merci, mais dans ce cas-ci j'utilise JSONP et pas JSON. Il me semble que si je met json dans le dataType, ça ne fonctionne pas ...

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Je ne vois nulle part dans la doc un dataType jsonp ...
    je ne vois que json
    Quelle différences fais tu entre json et jsonp ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 56
    Par défaut
    Le JSONP est une amélioration du JSON. Grâce à lui tu peux exécuter des requêtes ajax cross dromain

    http://en.wikipedia.org/wiki/JSONP

    http://api.jquery.com/jQuery.ajax/

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    C'est que le string jsonp retourné est mal formaté ?
    As tu un exemple de chaine jsonp retourné ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Probleme CSS: Bon affichage menu sur Firefox mais pas sur IE7
    Par jisko42 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 08/02/2010, 15h08
  2. Un lien marche sur IE mais pas sur Firefox
    Par Arsofts dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 12/07/2009, 15h33
  3. Réponses: 1
    Dernier message: 23/09/2008, 21h37
  4. Calcul marche sur IE mais pas sur Firefox
    Par Akim13 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/05/2008, 18h22
  5. Eval qui fonctionne sur Firefox mais pas sur IE :D
    Par Comawhite dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/10/2006, 11h31

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