首页 文章

发送多部分发布请求时出现问题

提问于
浏览
0

我使用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 回答

  • 1

    看起来您正在为客户端使用角度框架 . 根据我的经验,在 Headers 中将'Content-Type'更改为未定义,浏览器将为其设置正确的格式 . 还要添加transformRequest:angular.identity参考this链接 .

    您的代码应如下所示:

    $http({
    
           method: 'POST',
           url: serviceURL
           headers: {
               'Content-Type': undefined
           },
           transformRequest: angular.identity,
           data: formData
       });
    

    希望这对你有用 .

相关问题