And*_*ali 4 javascript java http angularjs
我正在开发一个使用不同服务休息的图形界面(用 java 编写)。我必须调用这样的服务:
@PUT
@Path("nomeServizio")
public Response nomeServizio(final FormDataMultiPart multiPart) {
......}
Run Code Online (Sandbox Code Playgroud)
呼叫服务:
service: function (data) {
return $http({
url: PATH_REST_SERVICES + '/nomeServizio',
headers: {"Content-Type": "multipart/form-data"},
data: data,
method: "PUT"
});
}
Run Code Online (Sandbox Code Playgroud)
当我从我的 Angularjs 服务文件中请求时,如果服务具有 Content-Type = multipart / form-data,我得到:错误 400(错误的请求)
如果服务具有 Content-Type = "application / x-www-form-urlencoded; charset = utf-8" 或 "application / json; charset = utf-8" 或“应用程序/表单数据”。
我正在用 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"
});
Run Code Online (Sandbox Code Playgroud)
将内容类型标头设置为undefined. 通常$http 服务将内容类型设置为application/json. 当内容类型为 时undefined,XHR API会自动将内容类型设置为multipart/form-data具有适当的多部分边界。