我发现this answer解释了如何使用FormData
对象通过ajax上传文件。我想知道是否可以重新排列在POST请求中发送的数据结构。
我的后端处于rails状态,控制器需要这样的数据:
xmlFile: {
some_property: 1,
attachment: [the file]
}
但是,如果我使用与上述链接类似的解决方案,例如
var data = new FormData();
data.append('some_property', id);
data.append('source', file);
(其中file
是File
个对象),然后使用$.ajax
$.ajax({
url: url,
data: data,
processData: false,
type: 'POST',
contentType: 'multipart/form-data',
mimeType: 'multipart/form-data'
});
表单提交,但数据未在xmlFile
下命名空间。如果我尝试做类似
$.ajax({
url: url,
data: {xmlFile: data},
processData: false,
type: 'POST',
contentType: 'multipart/form-data',
mimeType: 'multipart/form-data'
});
它不起作用。请求数据只显示[object Object]。