fetch - multipart/form-data POST に境界がありません 質問する

fetch - multipart/form-data POST に境界がありません 質問する

リクエストのnew FormData()としてを送信したいのですがbodyPOSTフェッチAPI

操作は次のようになります。

var formData = new FormData()
formData.append('myfile', file, 'someFileName.csv')

fetch('https://api.myapp.com', 
  {
    method: 'POST',
    headers: {
      "Content-Type": "multipart/form-data"
    },
    body: formData
  }
)

ここで問題となるのは、境界線のようなものが

boundary=----WebKitFormBoundaryyEmKNDsBKjB7QEqu

Content-Type:ヘッダーには決して入らない

次のようになります:

Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryyEmKNDsBKjB7QEqu

次のように、で「同じ」操作を試みるとしますnew XMLHttpRequest()

var request = new XMLHttpRequest()
request.open("POST", "https://api.mything.com")
request.withCredentials = true
request.send(formData)

ヘッダーが正しく設定されている

Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryyEmKNDsBKjB7QEqu

私の質問は次のとおりです:

  1. この状況とfetchまったく同じように動作させるにはどうすればよいでしょうか?XMLHttpRequest
  2. これが不可能な場合、その理由は何でしょうか?

みなさん、ありがとう!このコミュニティのおかげで、私はプロとして成功しています。

ベストアンサー1

この問題の解決策は、ブラウザまたは使用しているクライアントがそれを設定して境界値を追加できるように明示的に設定することです。残念ですが、事実ですContent-Typeundefined

おすすめ記事