tôi muốn chuyển một đối tượng json chứa đối tượng lồng nhau từ máy khách của tôi đến máy chủ của tôi.cách truyền đúng đối tượng json vào máy chủ bình bằng cách sử dụng jquery ajax
về phía khách hàng, cấu trúc dữ liệu của tôi trông như thế này:
var response = {};
response['screening'] = '1';
response['assistance'] = 'wheelchair access';
response['guests'] = {};
response['guests']['1'] = {}
response['guests']['1']['first'] = 'John'
response['guests']['1']['last'] = 'Smith'
response['guests']['2'] = {}
response['guests']['2']['first'] = 'Dave'
response['guests']['2']['last'] = 'Smith'
và gọi ajax của tôi trông như thế này:
$.ajax({
type: "POST",
url: window.location.pathname,
data: response
}).done(function(msg) {
alert("Data Saved: " + msg);
});
sau khi công bố dữ liệu này để máy chủ của tôi, được điều hành sử dụng python flask, tôi sử dụng đối tượng request.form để kiểm tra những gì đã được đăng từ máy khách. tôi muốn các dữ liệu được cấu trúc theo cùng một cách, tuy nhiên, đây là kết quả trên máy chủ:
ImmutableMultiDict([('guests[1][first]', u'John'), ('screening', u'2'), ('guests[2][last]', u'Smith'), ('guests[2][first]', u'Dave'), ('assistance', u'wheelchair access'), ('guests[1][last]', u'Smith')])
như bạn có thể nhìn thấy, phản ứng [ 'khách'] đối tượng bị san phẳng, và tất cả của nó trẻ em, chẳng hạn như:
khách [2] [đầu tiên] '
... chỉ là một chuỗi, không yếu tố phản ứng cha mẹ của họ [ 'khách'].
có cách nào tốt hơn để gửi khối dữ liệu này từ khách hàng của tôi đến máy chủ của tôi và duy trì cấu trúc của nó đúng cách không?
cảm ơn!
Hoàn toàn hoạt động! Cảm ơn. Một điều tho, phương thức .done() không bao giờ thực hiện, mặc dù tôi có thể thấy dữ liệu trên máy chủ của tôi và khi tôi kiểm tra tab mạng chrome dev, có một POST 200 OK cho yêu cầu này. – SeanPlusPlus
Đừng bận tâm đến nhận xét ở trên. Tôi cần phải giải thích phản hồi của tôi từ máy chủ. Cảm ơn một lần nữa vì đã giúp với điều này. – SeanPlusPlus