我何时应该明确设置`Content-Type`标头来获取API?

时间:2018-01-28 05:41:31

标签: javascript http fetch content-type

Content-Type次请求上设置fetch标头时,最佳做法是什么?

我今天花了几个小时来追踪一个错误,因为我正在做我认为是一个好习惯的做法:根据我发送的内容类型设置我的请求的Content-Type标题。

具体来说,我发送了Content-Type multipart/form-data的POST请求(用于文件上传)。我不知道的是,浏览器会自动设置Content-Type个请求的multipart/form-data标题,它会向所需的boundary值附加Content-Type标题。

我过去曾遇到问题,试图在没有设置Content-Type标题的情况下发布JSON数据,现在我遇到试图POST文件的问题 while 设置Content-Type标题。

这里有一个很好的经验法则吗?

1 个答案:

答案 0 :(得分:1)

首先,对于Post方法,我们必须指定要发送的内容的类型 如果我们发布我们正在使用的文件,请使用JSON或text / plain或images 用于设置键值对的新FormData()构造函数

FormData接口提供了一种方法,可以轻松构造一组表示表单字段及其值的键/值对,然后可以使用XMLHttpRequest.send()方法轻松发送。如果编码类型设置为“multipart / form-data”,它使用与表单相同的格式。检查mdn

在mdn上检查这一点,清楚地说明为什么标题未在Content-headers中使用