47 votes

Comment définir le corps brut dans jQuery Ajax ?

Au lieu d'envoyer une liste de paires clé/valeur, je dois envoyer une chaîne JSON comme corps de la requête POST. Je fais cette requête POST en utilisant la fonction $.ajax de jQuery. Comment le régler correctement ?

Quand je dis chaîne JSON, je veux dire quelque chose comme : {action:'x',params:['a','b','c']} .

Voici comment j'utiliserais cette chaîne JSON en PHP sur le serveur :

 var_dump(json_decode(file_get_contents('php://input')));

Résulte en:

 stdClass Object
    action = x
    params = Array
        (
    0 = a
    1 = b
    2 = c
        )

107voto

pete Points 10537

Essayer:

 $.ajax('url',{
    'data': JSON.stringify(yourJSONObject), //{action:'x',params:['a','b','c']}
    'type': 'POST',
    'processData': false,
    'contentType': 'application/json' //typically 'application/x-www-form-urlencoded', but the service you are calling may expect 'text/json'... check with the service to see what they expect as content-type in the HTTP header.
});

J'espère que cela t'aides,

Pierre

5voto

3nigma Points 21164

si vous ne spécifiez pas la clé, je pense qu'il publiera comme corps sans la clé comme

 $.ajax({
data:JSON.stringify({action:'x',params:['a','b','c']})
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X