javascript - Fetch API 什么时候应该显式设置 `Content-Type` header ?

标签 javascript http fetch content-type

fetch 请求中设置 Content-Type header 的最佳做法是什么?

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

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

我在过去尝试 POST JSON 数据时遇到了问题没有设置 Content-Type header ,现在我在尝试 POST 时遇到了问题文件同时设置Content-Type header 。

这里有什么好的经验法则吗?

最佳答案

首先对于 Post 方法,我们必须指定要发送的内容的类型 如果我们要发布我们正在使用的文件,例如 JSON 或文本/纯文本或图像 new FormData() 构造函数来设置键值对

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

在 mdn 上检查这个清楚地说明了为什么标题没有在 Content-headers 中使用

关于javascript - Fetch API 什么时候应该显式设置 `Content-Type` header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48483531/

相关文章:

html - 浏览器如何检测 GIF 图像大小?

node.js - Node JS 通过 HTTP 上传文件流

javascript - 此 Google Maps APIv3 代码中 (marker, i) 的含义是什么?

php - 如何调用位于同一服务器上的 API?

java - 读取 HttpPost 响应

javascript - 在前端使用 fetch 从express.js 服务器获取响应

reactjs - React 多次从状态中获取

javascript - 仅限 Firefox/IE - gif 动画在 element show() jquery 之后卡住

javascript - NodeJs 使用 ExpressJs : TypeError: string is not a function at Function. app.render

javascript - 对象可能是 'undefined' typescript