2010-10-04 9 views
4

Essayer d'obtenir JQuery pour poster JSON à un serveur:Affichage JSON avec JQuery

$.ajax({ 
    url: "/path/to/url", 
    type: "POST", 
    dataType: "json", 
    contentType: "json", 
    data: {"foo": "bar"}, 
    success: function(){    
    alert("success :-)"); 
    }, 
    error: function(){ 
    alert("fail :-("); 
    } 
}); 

Le problème est que les données apparaissent sur le serveur comme "foo=bar" plutôt que le "{\"foo\":\"bar\"} désiré.

Je pensais que spécifier les paramètres dataType ou contentType ferait l'affaire, mais non.

Quelqu'un connaît la bonne configuration ajax? [ou bien un moyen de sérialiser le paramètre 'data' comme JSON avant de le poster?]

Merci!

Répondre

10

Vous pouvez utiliser json2.js:

data: JSON.stringify({"foo": "bar"}) 
1

est pour les données de type de données renvoyées. Contenttype n'est pas applicable, voir here

Il ne peut envoyer que des chaînes, j'utilise JSON.stringify sur mes objets javascript créés, dans votre cas, vous pouvez simplement coder manuellement la chaîne.

Vous aurez aussi besoin d'accéder à la chaîne sur le côté serveur, pour que si vous utilisez java je peux recommened gson de Google