Backbone可以将数据发送为multipart/form-data
吗?我相信它默认为application/json
。我查看了文档,如果我Backbone.emulateJSON = true
它会以application/x-www-form-urlencoded
发送,但这没有用。
我正在处理遗留项目,我正在尝试向其添加文件上传功能。要做到这一点虽然我被告知服务器需要更改为接受 multiform 数据而不是 application / json 数据。
答案 0 :(得分:1)
当您fetch
,save
等时,您可以选择提供options
参数。其中任何非特定于骨干的选项(例如。silent: true
)都会传递给sync
,然后将它们传递给$.ajax
。
因此,简而言之,只需在调用Backbone AJAX方法时传递适当的选项,就可以执行通常使用$.ajax
执行的任何操作。
答案 1 :(得分:0)
我建议您使用显式传输进行文件上传,例如jQuery.ajax或类似的,因为上传并不真正类似于Backbone.Models。 此外,您可能希望使用诸如jquery-fileupload之类的库并订阅它发出的事件。另请查看ideas。
答案 2 :(得分:0)
您可以通过将数据追加到FormData()对象,然后将表单设置为enctype =“ multipart / form-data”来作为多部分发送数据。也可以通过此方式发送File对象。
<form class="form form-inline" id="quotation_form" method="post" data-remote="true" enctype="multipart/form-data" >
</form>
var data = new FormData();
data.append("description", description);
quotationAttachmentModel.save(null, {
processData: false,
url: requestURL,
data: data,
cache: false,
iframe: true,
emulateJSON: true,
contentType: false,
success: function(model, resp) {
console.log("success");
},
error: function(data, jqXHR, errorThrown) {
console.log("failed");
}
});