骨干可以作为多部分发送数据吗?

时间:2014-03-06 18:51:22

标签: forms backbone.js

Backbone可以将数据发送为multipart/form-data吗?我相信它默认为application/json。我查看了文档,如果我Backbone.emulateJSON = true它会以application/x-www-form-urlencoded发送,但这没有用。

我正在处理遗留项目,我正在尝试向其添加文件上传功能。要做到这一点虽然我被告知服务器需要更改为接受 multiform 数据而不是 application / json 数据。

3 个答案:

答案 0 :(得分:1)

当您fetchsave等时,您可以选择提供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");
      }
    });