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 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