passage de type complexe sous forme de données à un message jquery ajax

Ma classe de modèle de données se présente comme suit:

 [DataContract] public class Commande {[DataMember] public ssortingng Id {get;  ensemble;  } [DataMember] public ssortingng AdditionalInstructions {get;  ensemble;  } [DataMember] public double TotalAmount {get;  ensemble;  } [DataMember] public DateTime OrderDate {get;  ensemble;  } [DataMember] public Client Client {get;  ensemble;  } [DataMember] public OrderedProduct OrderedProduct {get;  ensemble;  }} [DataContract] public class OrderedProduct {[DataMember] public int Id {get;  ensemble;  } [DataMember] chaîne publique Nom {get;  ensemble;  } [DataMember] public double Price {get;  ensemble;  } [DataMember] public int Quantity {get;  ensemble;  }} [DataContract] public class Client {[DataMember] public ssortingng FirstName {get;  ensemble;  } [DataMember] chaîne publique LastName {get;  ensemble;  }} 

Mon contrat d’exploitation de la WCF est:

 [WebInvoke (ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
 [OperationContract]
 ssortingng SaveOrder (Ordre de la commande);

Mon appel ajax ressemble à:

 fonction SaveOrder () {
     var orderJson = {
         AdditionalInstructions: $ ("span: first"). Text (),
         Client: {Prénom: $ ("# Prénom"). Val (), Nom: $ ("# Nom"). Val ()},
         OrderedProduct: {Id: $ ("# productList"). Val (), quantité: $ ("# quantité"). Val ()}
         };

     // la publication sur votre service Web ou votre page
     $ .ajax ({
         type: "POST", // GET ou POST ou PUT ou DELETE verbe
         url: "http: // localhost: 14805 / OrderService.svc / SaveOrder", // emplacement du service
         data: orderJson, // données envoyées au serveur
         contentType: "application / json; charset = utf-8", // type de contenu envoyé au serveur
         dataType: "json", // Format de données attendu du serveur
         processdata: false, // True ou False
         success: function (result) {// Appel de service réussi
             alerte (résultat);
         },
         error: function (result) {// Lorsque l'appel de service échoue
             alert ('Echec de l'appel de service:' + result.status + '' + result.statusText);
         }
     });
 }

Mais lorsque je passe cet appel, je reçois le statut 400: mauvaise demande. Voici à quoi ressemble l’en-tête dans Google Chrome:

 URL de la demande: http: // localhost: 14805 / OrderService.svc / SaveOrder
 Méthode de demande: POST
 Code de statut: 400 Bad Request
 En-têtes de demande
 Accepter: application / json, text / javascript, * / *;  q = 0,01
 Jeu de caractères accepté: ISO-8859-1, utf-8; q = 0,7, *; q = 0,3
 Accept-Encoding: gzip, deflate, sdch
 Accepter-Langue: en-US, en; q = 0.8
 Connexion: Keep-Alive
 Longueur du contenu: 165
 Type de contenu: application / json;  jeu de caractères = UTF-8
 Hôte: localhost: 14805
 Origine: http: // localhost: 14805
 Référent: http: // localhost: 14805 / index.html
 Agent utilisateur: Mozilla / 5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit / 534.16 (KHTML, comme Gecko) Chrome / 10.0.648.127 Safari / 534.16
 X-Demandé-Avec: XMLHttpRequest
 Charge utile de la demande
 AdditionalInstructions = dbl-click + ici + à + append + notes! & Client% 5B Prénom:% 5D = asdf & Client% 5BLastName% 5D = Fdsa & Produit commandé% 5BId% 5D = 3 & Produit commandé% 5BQuantity% 5B = 12
 En-têtes de réponse
 Cache-Control: privé
 Connexion: Fermer
 Longueur du contenu: 1647
 Type de contenu: text / html
 Date: lundi, 07 mars 2011 à 19:14:57 GMT
 Serveur: Serveur de développement ASP.NET / 10.0.0.0
 X-AspNet-Version: 4.0.30319

S’il vous plaît laissez-moi savoir comment je peux rectifier cela.

Merci, Arun

La résolution de ce problème posait deux problèmes. 1. Un bug dans mon service lui-même (c’est mon mauvais) 2. Je l’ai fait à JSON.ssortingngify () sur l’object orderJson.

 fonction SaveOrder () {
     var orderJson = {
         AdditionalInstructions: $ ("span: first"). Text (),
         Client: {
             Prénom: $ ("# prénom"). Val (),
             Nom: $ ("# nom"). Val ()
         },
         Produit commandé: {
             Id: $ ("# productList"). Val (),
             Quantité: $ ("# quantité"). Val ()
         }
     };

     // la publication sur votre service Web ou votre page
     $ .ajax ({
         type: "POST", // GET ou POST ou PUT ou DELETE verbe
         url: "http: // localhost: 14805 / OrderService.svc / SaveOrder", // emplacement du service
         data: JSON.ssortingngify (orderJson), // données envoyées au serveur
         contentType: "application / json; charset = utf-8", // type de contenu envoyé au serveur
         dataType: "json", // Format de données attendu du serveur
         processdata: false, // True ou False
         success: function (result) {// Appel de service réussi
             RedirectToMvcApp (résultat);
         },
         error: function (request, error) {// Lorsque l'appel de service échoue
             alert ('Echec de l'appel de service:' + request.status + '' + request.statusText);
         }
     });
 }