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

问题描述 投票:1回答:3

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

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

forms backbone.js
3个回答
1
投票

当你fetchsave等你可以选择提供options参数。其中任何不是Backbone特定的选项(例如silent: true)将被传递给sync,然后将它们传递给$.ajax

因此,简而言之,只需在进行Backbone AJAX方法调用时传递适当的选项,就可以执行$.ajax通常可以执行的任何操作。


0
投票

我建议您使用显式传输进行文件上传,例如jQuery.ajax或类似的,因为上传并不真正类似于Backbone.Models。此外,您可能希望使用jquery-fileupload等库并订阅它发出的事件。另请查看ideas


0
投票

您可以通过将数据附加到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");
      }
    });
© www.soinside.com 2019 - 2024. All rights reserved.