Au lieu d'envoyer une liste de paires clé/valeur, je dois envoyer une chaîne JSON comme corps de la demande POST.
Je fais cette demande 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 dans 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
)
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,
Pete
si vous ne spécifiez pas la clé, je pense qu'elle sera affichée comme le corps sans la clé comme
$.ajax({
data:JSON.stringify({action:'x',params:['a','b','c']})
});