骨干可以作为多部分发送数据吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了骨干可以作为多部分发送数据吗?相关的知识,希望对你有一定的参考价值。
Backbone可以像multipart/form-data
一样发送数据吗?我相信它默认为application/json
。我查看了文档,如果我做Backbone.emulateJSON = true
它会发送为application/x-www-form-urlencoded
,但这没有帮助。
我正在研究遗留项目,我正在尝试向其添加文件上传功能。要做到这一点,虽然我被告知服务器需要更改为接受多形式数据而不是application / json数据。
答案
当你fetch
,save
等你可以选择提供options
参数。其中任何不是Backbone特定的选项(例如silent: true
)将被传递给sync
,然后将它们传递给$.ajax
。
因此,简而言之,只需在进行Backbone AJAX方法调用时传递适当的选项,就可以执行$.ajax
通常可以执行的任何操作。
另一答案
我建议您使用显式传输进行文件上传,例如jQuery.ajax或类似的,因为上传并不真正类似于Backbone.Models。此外,您可能希望使用jquery-fileupload等库并订阅它发出的事件。另请查看ideas。
另一答案
您可以通过将数据附加到FormData()对象,并使您的表单enctype =“multipart / form-data”作为multipart发送数据。您也可以通过此发送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");
}
});
以上是关于骨干可以作为多部分发送数据吗?的主要内容,如果未能解决你的问题,请参考以下文章