Comment mettre en place une METTRE d'appel avec des données JSON à l'aide d'AJAX et JQuery?
J'ai regardé autour et a essayé de nombreuses méthodes différentes, mais ne semble pas possible de transmettre des données réelles pour mon contrôleur de fonction.
Voici un code:
var URL = "/Timesheet/Timesheet/UpdateEntry";
var dataObject = { 'newWeekEntry': newEntry, 'oldWeekEntry': oldEntry };
alert(JSON.stringify(dataObject));
$.ajax({
url: URL,
type: 'PUT',
data: JSON.stringify(dataObject),
dataType: 'json',
success: function(result) {
alert("success?");
}
});
newEntry
et oldEntry
sont à la fois des objets.
La alert
sorties ligne (avec certaines propriétés supprimé, simplement par souci de concision):
{"newWeekEntry":{"MondayHours":2,"TuesdayHours":2,"WednesdayHours":5,"ThursdayHours":5,"FridayHours":"4","SaturdayHours":0,"SundayHours":0},"oldWeekEntry":{"MondayHours":2,"TuesdayHours":2,"WednesdayHours":5,"ThursdayHours":5,"FridayHours":2,"SaturdayHours":0,"SundayHours":0}}
Quand je debug mon contrôleur de l'action ("UpdateEntry"), les deux paramètres sont remplis avec de la TimesheetEntry
classe les paramètres par défaut (0).
Suis-je en passant bien?
Pouvez-vous développer ce que vous voulez dire quand vous dites "Quand je debug mon contrôleur de l'action ("UpdateEntry"), les deux paramètres sont remplis avec de la TimesheetEntry classe les paramètres par défaut (0)."? De quoi êtes-vous à l'aide sur le serveur (c'est à dire les Rails) et comment êtes-vous convertir JSON sur le serveur de TimesheetEntry?
Le
Merci InPursuit! Qu'il fixe. Aimeriez-vous ajouter comme une réponse et je peux accepter ça?
bien sûr, content d'avoir pu aider!
Le
dataType
attribut est utilisé uniquement lorsque vous êtes l'obtention de données à partir du serveur. Vous devez être contentType
à application/json
lors de l'envoi des données au serveur.Merci InPursuit! Qu'il fixe. Aimeriez-vous ajouter comme une réponse et je peux accepter ça?
bien sûr, content d'avoir pu aider!
OriginalL'auteur Rail24 | 2012-10-24
Vous devez vous connecter pour publier un commentaire.
La
dataType
attribut est utilisé uniquement lorsque vous êtes l'obtention de données à partir du serveur. Vous devez êtrecontentType
àapplication/json
lors de l'envoi des données au serveur.OriginalL'auteur InPursuit
Utilisation d'en-têtes:
{"X-HTTP-Method-Override": "PUT"}
et remplacer lePOST
type de demande. Il fonctionne sur mon projet...Regardez et vous verrez que mettre comme un type qui ne fonctionne pas comme cela devrait être
Et comment obtenir le dans votre contrôleur?
OriginalL'auteur user1524615
Cela a fonctionné pour moi
OriginalL'auteur Jayadeep KM