我使用js来处理带有multipart / form-data的post请求 . 当客户端使用multipart / form-data发送post请求时,它总是返回错误的请求错误 . 当我通过邮递员发送请求时,它给出了错误:“发送多部分发布请求时无效的多部分有效载荷格式” . 无论我使用哪种调用方法,服务器端都没有动作 .
{
method: "POST",
path: "/uploadFile",
config: {
payload: {
output: "stream",
parse: true,
allow: "multipart/form-data"
},
handler: (request, reply) => {
console.log("get into handler");
let data = request.payload;
if (data.file) {
let name = data.file.hapi.filename;
console.log(name);
} else {
console.log("no data");
}
}
}
}
客户端代码是这样的:
$http({
method: 'POST',
url: serviceURL
headers: {
'Content-Type': 'multipart/form-data; boundary=--xxxxSEPARATIONxxxx--'
},
data: formData
});
1 回答
看起来您正在为客户端使用角度框架 . 根据我的经验,在 Headers 中将'Content-Type'更改为未定义,浏览器将为其设置正确的格式 . 还要添加transformRequest:angular.identity参考this链接 .
您的代码应如下所示:
希望这对你有用 .