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, json et header http


Sujet :

jQuery

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 467
    Par défaut jquery, json et header http
    Bonjour,

    J'ai un script php qui me renvoi un tableau encodé en json :
    En toute logique, je déclare un header avec le type mime "application/json".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        $json['a'] = "bla bla";
        $json['b'] = "bli bli;
        $json['c'] = "blo blo";
        header('Content-type: application/json; charset=utf8');
        header('Cache-Control: no-cache, must-revalidate');
        header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
        echo json_encode($json);
    Et mon code javascript utilisant jquery est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function action(){
        $.ajax({
           type: "POST",
           url: "script.php",
           data: "machin=truc",
           success: function(msg){
    	data = jQuery.parseJSON(msg);
    	$('#mondiv').html(data.a);
           }
        });
    Malheuresement cela ne fonctionne pas. Par contre si je laisse le mimetype par défaut (text/plain), dans ce cas, je récupère bien mes données json.
    Visiblement je ne récupère pas correctement mes données json.

    Avez vous une idée du problème ?

    Merci

  2. #2
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Bonjour,

    dans le header vous indiquez bien que vous renvoyez du JSON et faite bien le json_encode.

    Le problème vient côté "client" et Javascript du fait que $.parseJSON() est inutile, data est déjà au format JSON.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        $.ajax({
           type: "POST",
           url: "script.php",
           data: "machin=truc",
           success: function(msg){
    	$('#mondiv').html(msg.a);
           }
        });
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 467
    Par défaut
    Impeccable, merci

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

Discussions similaires

  1. [Axis] Headers HTTP
    Par getupa dans le forum Services Web
    Réponses: 4
    Dernier message: 28/06/2010, 14h41
  2. Collecttion nommée pour headers HTTP
    Par smartdev dans le forum C++
    Réponses: 1
    Dernier message: 25/09/2007, 18h11
  3. Header Http ob_start()
    Par Heaven dans le forum Langage
    Réponses: 1
    Dernier message: 19/06/2007, 17h33
  4. Comment passer des headers http ?
    Par Loko dans le forum Oracle
    Réponses: 5
    Dernier message: 15/11/2006, 09h19

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