【问题标题】:Multipart requests with AngularAngular 的多部分请求
【发布时间】:2016-06-03 14:59:50
【问题描述】:

所以,我正在尝试使用 Angular 发布多部分请求,并且请求有效负载与我的预期不符。 我在做什么:

function sendBroadcastImage(ids, img) {
        var fd = new FormData();
        fd.append('destinationUsersIds', angular.toJson({
            values : ids
        }));
        fd.append('file', img);

        $http.post(
            '/some/api/url/',
            fd,
            {
                transformRequest: angular.identity,
                headers: { 'Content-Type': undefined }
            });
    }

我得到了这个载荷:

------WebKitFormBoundary3KBBZ9GEkqoGGQMC
Content-Disposition: form-data; name="destinationUsersIds"

{"values":[2235]}
------WebKitFormBoundary3KBBZ9GEkqoGGQMC
Content-Disposition: form-data; name="file"; filename="capacete.jpg"
Content-Type: image/jpeg


------WebKitFormBoundary3KBBZ9GEkqoGGQMC--

我需要什么有效负载(第一个边界也是内容类型):

------WebKitFormBoundary3KBBZ9GEkqoGGQMC
Content-Disposition: form-data; name="destinationUsersIds"
Content-Type: application/json

{"values":[2235]}
------WebKitFormBoundary3KBBZ9GEkqoGGQMC
Content-Disposition: form-data; name="file"; filename="capacete.jpg"
Content-Type: image/jpeg


------WebKitFormBoundary3KBBZ9GEkqoGGQMC--

有可能吗?我该怎么做?

【问题讨论】:

    标签: angularjs json post content-type multipart


    【解决方案1】:

    根据this guy 和FormData 的文档,您可以使用Blob 附加具有特定内容类型的字段。

    var fd = new FormData();
    formData.append('destinationUsersIds', new Blob([angular.toJson({
        values: ids
    })], {
        type: "application/json"
    }));
    

    让我知道这是否适合你。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-23
      • 1970-01-01
      • 1970-01-01
      • 2018-01-26
      • 2015-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多