Je travaille sur AJAX. Je crée une demande de publication comme celle-ci:
$.ajax({
'url':'http://localhost/api/create/',
'method':'POST',
'dataType': 'json',
'contentType': 'application/json',
'data':{
"refId":585,
"phone":"0674444444"
},
'success': getHandlingStatus
});
Lorsque ma demande est exécutée, les données sont transmises en tant que paramètres dans ma charge utile de demande et non en tant que données JSON. Voici ma charge utile de demande:
refId=585&phone=0674444444
Je veux envoyer des données au format json comme:
{
"refId":"585",
"phone:"0674444444"
}
Qu'est-ce qui me manque, s'il vous plaît?
Vous devez utiliser JSON.stringify pour convertir les données en JSON avec l'option ProcessData définie sur false. Selon la documentation de jquery:
Par défaut, les données transmises à l'option data en tant qu'objet (techniquement, autre chose qu'une chaîne) seront traitées et transformées en une chaîne de requête, correspondant au type de contenu par défaut "application/x-www-form-urlencoded" . Si vous souhaitez envoyer un DOMDocument ou d'autres données non traitées, définissez cette option sur false.
$.ajax({
'url':'http://localhost/api/create/',
'method':'POST',
'dataType': 'json',
processData: false,
'contentType': 'application/json',
'data':JSON.stringify({
"refId":585,
"phone":"0674444444"
}),
'success': getHandlingStatus
});
Vous devez utiliser JSON.stringify()
pour convertir les données au format JSON
. Voir documentation .
$.ajax({
'url':'http://localhost/api/create/',
'method':'POST',
'dataType': 'json',
'contentType': 'application/json',
'data':JSON.stringify({
"refId":585,
"phone":"0674444444"
}),
'success': getHandlingStatus
});
Have you tried the following
$ .ajax ({ 'url': 'http: // localhost/api/create /', 'méthode': 'POST', 'dataType': 'json', 'contentType': 'application/json', 'data': JSON.stringify ({ "refId": 585, "téléphone": "0674444444" }), 'processData': faux, 'succès': getHandlingStatus } );
Il y avait une virgule manquante après processData: false