使用 Angular 的多部分请求



所以,我正在尝试发布一个带有 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--

可能吗?我该怎么做?

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

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

让我知道这是否适合您。

相关内容

  • 没有找到相关文章

最新更新