Tôi cần gửi một số dữ liệu bằng ajax và FormData, vì tôi muốn gửi một tệp và một số tham số khác. Con đường tôi thường gửi dữ liệu là thế này:Gửi FormData lồng nhau trên AJAX
$.ajax({
type: 'POST',
url: 'some_url',
dataType: 'json',
processData:false,
contentType:false,
data:{
Lvl_1-1: 'something',
Lvl_1-2: 'something',
Lvl_1-3: {
Lvl_1-3-1: "something",
Lvl_1-3-2: "something",
Lvl_1-3-3: "something",
},
},
...
});
Nếu tôi không sử dụng FormData(), tôi không có vấn đề, nhưng khi sử dụng FormData(), chỉ có các dữ liệu trên Lvl1 là ok, nhưng bất cứ điều gì là lồng nhau hiển thị như chuỗi như thế này
<b>array</b> <i>(size=3)</i>
'Lvl1-1' <font color='#888a85'>=></font> <small>string</small>
<font color='#cc0000'>'Something'</font>
<i>(length=23)</i>
'Lvl1-2' <font color='#888a85'>=></font> <small>string</small>
<font color='#cc0000'>''Something''</font> <i>(length=3)</i>
'Lvl1-3' <font color='#888a85'>=></font> <small>string</small>
<font color='#cc0000'>'[object Object]'</font> <i>(length=17)</i>
Nếu tôi sử dụng FormData() để mã hóa dữ liệu bên trong Lvl1-3, thay vì [object Object]
tôi nhận được [object FormData]
làm thế nào để có được một mảng thay vì chuỗi trên Lvl1-3 ?
LƯU Ý: Nếu tệp ở cấp cao nhất (Lvl_1), tôi có thể gửi tệp mà không gặp vấn đề gì khi sử dụng FormData(). Tôi đã không viết mã của tập tin đính kèm bởi vì đó không phải là vấn đề, dữ liệu lồng nhau là. Tôi chỉ đề cập đến tập tin vì đó là lý do tại sao tôi đang sử dụng FormData().
séc https://github.com/foo123/serialiser.js để nối tiếp các trường biểu mẫu phức tạp/lồng nhau thành formData, đối tượng, json, dữ liệu được mã hóa url (tác giả) –