!Content-Lengthが付かない const params = new FormData(); params.append('temporary_reference_number', tempReceptionNumber); const headers = { accept: 'application/json', 'X-Access-Key': accessKey, 'X-Provider-Id': businessId, ...params.getHeaders(), }; await axios.post(URL_APPLICATION_DATA, params, { headers: headers }) // thenで成功した場合の処理をかける .then(async response => { //成功時の処理 // catchでエラー時の挙動を定義する }).catch(async err => { //エラー時の処理 }); フォームデータをPOSTするとContent-LengthがセットされずTransfer-Encoding: chunkedになってしまいWAFではじかれてしまう現象が発生するのでgetLengthSyncでlengthを取得しヘッダーにセットしなくてはならない。 const params = new FormData(); params.append('temporary_reference_number', tempReceptionNumber); const headers = { accept: 'application/json', 'X-Access-Key': accessKey, 'X-Provider-Id': businessId, ...params.getHeaders(), 'Content-Length': params.getLengthSync(), }; await axios.post(URL_APPLICATION_DATA, params, { headers: headers }) // thenで成功した場合の処理をかける .then(async response => { //成功時の処理 // catchでエラー時の挙動を定義する }).catch(async err => { //エラー時の処理 }); !getLengthSyncはストリームをカウントできない。 ファイルを添付する時はgetLengthSyncではストリームをカウントできないのでgetLength()を使用する。getLengthは非同期なので送信処理をコールバックで記述しなくてなならない。(コールバックを記述するのはめんどい!!) let signatureFileData = fs.createReadStream(signatureFileName); let certificateFileData = fs.createReadStream(certificateFileName); const params = new FormData(); params.append('temporary_reference_number', tempReceptionNumber); params.append('signature', signatureFileData); params.append('certificate', certificateFileData); params.getLength((err,length) => { if(err){ reject(err); } let headers = { accept: 'application/json', 'X-Access-Key': accessKey, 'X-Provider-Id': businessId, ...params.getHeaders(), 'Content-Length': length, }; axios.post(URL_DIGITAL_SIGN, params, { headers: headers }) // thenで成功した場合の処理をかける .then(response => { }).catch(async err => { }); });