Tôi đã xem xét và thử nhiều phương pháp khác nhau, nhưng dường như không truyền dữ liệu thực tế đến chức năng của bộ điều khiển của tôi.Làm thế nào để thực hiện cuộc gọi PUT với dữ liệu JSON bằng AJAX và JQuery?
Dưới đây là một số mã:
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
và oldEntry
là cả hai đối tượng.
Dòng alert
kết quả đầu ra này (với một số đặc tính loại bỏ, chỉ cho ngắn gọn):
{"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}}
Khi tôi gỡ lỗi hành động điều khiển của tôi ("UpdateEntry"), hai tham số được làm đầy với các thông số mặc định TimesheetEntry
lớp (0).
Tôi có chuyển nó đúng cách không?
Bạn có thể mở rộng vào những gì bạn có nghĩa là khi bạn nói "Khi tôi gỡ lỗi hành động điều khiển của tôi (" UpdateEntry "), hai tham số được lấp đầy với các tham số mặc định của lớp TimesheetEntry (0). "? Bạn đang sử dụng gì trên máy chủ (tức là Rails) và bạn đang chuyển đổi JSON trên máy chủ thành TimesheetEntry như thế nào? – InPursuit
Thuộc tính 'dataType' chỉ được sử dụng khi bạn nhận dữ liệu từ máy chủ. Bạn nên đặt 'contentType' thành' application/json' khi gửi dữ liệu đến máy chủ. – InPursuit
Cảm ơn bạn InPursuit! Điều đó đã sửa nó. Bạn có muốn thêm câu trả lời này làm câu trả lời và tôi có thể chấp nhận nó không? – Rail24