Backbone.js 网可以将数据作为多部分发送吗?

fjaof16o  于 2022-11-10  发布在  其他
关注(0)|答案(3)|浏览(108)

Backbone可以以multipart/form-data发送数据吗?我认为它默认为application/json。我查看了文档,如果我使用Backbone.emulateJSON = true,它将以application/x-www-form-urlencoded发送,但这没有帮助。
我正在处理一个遗留项目,我试图给它添加文件上传功能,但我被告知要做到这一点,服务器需要更改为接受 multiform 数据,而不是 application/json 数据。

suzh9iv8

suzh9iv81#

当你使用fetchsave等时,你可以选择性地提供一个options参数。其中的任何非特定于 Backbone 网的选项(例如silent: true)都将被沿着给sync,然后sync再将它们传递给$.ajax
因此,简而言之,在进行Backbone AJAX 方法调用时,只需传递适当的选项,就可以使用$.ajax执行通常可以执行的任何操作。

tzxcd3kk

tzxcd3kk2#

您可以通过将数据追加到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");
      }
    });
rmbxnbpk

rmbxnbpk3#

我建议你使用一个显式的传输来上传文件,比如 AJAX 或者类似的,因为上传并不像Backbone.models那样。另外,你可能想使用一个库,比如jquery-fileupload,并且订阅它发出的事件。对于ideas也要检查这一点。

相关问题