当前位置: 首页 > 面试题库 >

如何使用AngularJS $ http发送multipart / form-data

井翰
2023-03-14
问题内容

我正在开发使用不同服务其余部分的图形界面(用Java编写)。我必须调用这样的服务:

@PUT
@Path("nomeServizio")
public Response nomeServizio(final FormDataMultiPart multiPart) {
......}

呼叫服务:

service: function (data) {

            return $http({
                url: PATH_REST_SERVICES + '/nomeServizio',
                headers: {"Content-Type": "multipart/form-data"},
                data: data,
                method: "PUT"
            });
        }

当我从Angularjs服务文件中请求时,如果服务具有Content-Type = multipart / form-
data,则会收到错误400(错误请求)

如果服务的Content-Type =“ application / x-www-form-urlencoded; charset = utf-8”或“
application / json; charset =utf-8”,则我收到415(不支持的媒体类型)错误“应用程序/表单数据”。

我正在使用javascript和html5开发前端,但是由于JavaScript中不存在FormDataMultiPart对象,因此我在网络上找不到任何可以帮助我的东西。

我尝试格式化数据以多种方式发送,但始终返回400或415。

我应该如何格式化数据以发送到剩余呼叫?

内容类型应该在标题中吗?


问题答案:

所述FORMDATA接口提供了一种容易地构成一组表示表单字段和它们的值,然后可以使用能够容易地发送的键/值对XHR发送方法。如果编码类型设置为,则使用与表单使用的格式相同的格式multipart/form-data

var formData = new FormData();

formData.append('type', type);
formData.append('description', description);
formData.append('photo', photo);

return $http({
    url: PATH_REST_SERVICES + '/nomeServizio',
    headers: {"Content-Type": undefined },
    data: formData,
    method: "PUT"
});

将内容类型标头设置为至关重要undefined。通常,$http服务会将内容类型设置为application/json。当内容类型为时undefined,XHRAPI将自动将内容类型设置为multipart/form-data具有适当的多部分边界



 类似资料:
  • 问题内容: 我知道对此有很多疑问,但我无法解决这个问题: 我想将输入中的文件上传到multipart / form-data中的服务器 我尝试了两种方法。第一: 这导致例如图像 它应该是多部分/表单数据 和另外一个: 但这要求一个边界标头,我认为不应手动插入… 解决此问题的干净方法是什么?我读过你可以做的 但是我不希望我的所有帖子都是多部分/表单数据。默认值应为JSON 问题答案: 看一下Form

  • 如何在Python中用请求发送?如何发送文件,我明白了,但是如何用这种方法发送表单数据就不明白了。

  • 如何在web服务中读取多部分/表单数据?我发送数据使用邮递员身体形式的数据,但邮递员得到错误。 错误系统。InvalidOperationException:请求格式无效:多部分/表单数据;边界=----WebKitformBoundary79KY1A1KYYY7QUI。at系统。网状物服务。协议。HttpServerProtocol。系统中的ReadParameters()。网状物服务。协议。W

  • 我不知道为什么不能让jQuery传递上传数据,因为AJAX对象似乎配置正确,并且发送了正确的content-type/mime-type头部。 我尝试了两种不同的请求形式--一种是将FormData对象包含在文本中,另一种是直接传递FormData对象。 不幸的是,不管怎样,我都无法传递任何内容,$_files和$_post都是空数组。

  • 问题内容: 如何在python中发送带有请求的请求?我了解如何发送文件,但是通过这种方法如何发送表单数据尚不清楚。 问题答案: 基本上,如果你指定参数(字典),则将发送m而不是。你不限于在该词典中使用实际文件,但是: 可以让你知道你发布了哪些标题;在我们有: 更好的是,你可以通过使用元组而不是单个字符串或字节对象来进一步控制每个部分的文件名,内容类型和其他标题。该元组应该包含2到4个元素;文件名,

  • 我正在尝试将带有表单数据的POST请求从React前端发送到Go后端。 在后端,我尝试通过以下方式访问数据: 但是,我收到以下错误: 此外,fileHeader是。 我发现的唯一可能的解决方案是删除这篇文章中提到的标头,但在POST正文中编码授权令牌当然不是我解决此问题的首选方法。 由于已经有人问过这个问题,我不清楚这个问题:将标题设置为 导致同样的问题。 PS:React fetch似乎会自动生