voici mon appel ajax côté client :
var list = ["a", "b", "c", "d"];
var jsonText = { data: list };
$.ajax({
type: "POST",
url: "/api/scheduledItemPriceStatus/updateStatusToDelete",
data: jsonText,
dataType: "json",
traditional: true,
success: function() { alert("ça a fonctionné!"); },
failure: function() { alert("ça ne fonctionne pas..."); }
});
voici l'en-tête réseau de Chrome :
Adresse URL de la demande : http://localhost:2538/api/scheduledItemPriceStatus/updateStatusToDelete
Méthode de la demande : POST
En-têtes de requête voir la source
Accepter: application/json, text/javascript, */*; q=0.01
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding: gzip,deflate,sdch
Langue acceptée : en-US,en;q=0.8
Connexion: keep-alive
Longueur du contenu : 27
Type de contenu: application/x-www-form-urlencoded; charset=UTF-8
Hôte: localhost:2538
Origine: http://localhost:2538
Référent : http://localhost:2538/Pricing/ScheduledItemPrices
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11
X-Requested-With: XMLHttpRequest
Données du formulaire encodées en URL
data: a
data: b
data: c
data: d
voici ma méthode de contrôleur WebAPI :
public HttpResponseMessage UpdateStatusToDelete(string[] data)
résultat :
quand je débogue, le paramètre data dans UpdateStatusToDelete renvoie {string[0]}
au lieu de data: a data: b data: c data: d
Qu'est-ce que je fais mal ? Toute aide est vraiment appréciée.