2017-03-21 19 views
0

私は、multipart/form-dataでポストリクエストを処理するためにjsを使用しています。ポストリクエストがmultipart/form-dataを持つクライアントから送信されると、常に不正なリクエストエラーが返されます。私が郵便配達員経由でリクエストを送信すると、「マルチパート投稿リクエストを送信するときに無効なマルチパートペイロード形式」というエラーが表示されます。どちらの呼び出し方法を使用しても、サーバー側にはアクションはありません。マルチパートポストリクエストを送信するときに問題が発生する

{ 
     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

が見えます。 私の経験によれば、ヘッダーで 'Content-Type'を未定義に変更すると、ブラウザーは正しいフォーマットを設定します。また、transformRequest:angular.identityを追加してください。 参照thisリンク。

あなたのコードは次のようになります。

$http({ 

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

はあなたのためにこの作品を願っています。

+0

私はAngularJSにとってかなり新しいです。同じソリューションによって、私の同僚の助けを借りてそれを見つけました。ありがとう、結構です! – zhangjinzhou

関連する問題