这段JavaScript Fetch API代码应配置什么Content-Type请求头?
Fetch API的Content-Type选择
我刚开始学习JavaScript和API,查看文档时对请求头的多种Content-Type可选值感到困惑,现有如下Fetch API代码:
fetch(url, { method: 'post', headers: { "Content-type": }, body: 'bar= foo& lorem=ipsum' })
请问应选择以下哪个Content-Type值?
- A)
application/x-www-form-urlencoded; charset=UTF-8 - B)
text/html; charset=utf-8 - C)
application/json; charset=UTF-8 - D)
Content-Type: multipart/form-data; boundry=something
正确答案是A。
你的请求body是bar= foo& lorem=ipsum这种「键=值&键=值」的字符串格式,这正是application/x-www-form-urlencoded对应的编码方式——这是HTML表单默认的提交格式,专门用来把表单数据编码成键值对字符串。
其他选项的问题:
- B选项的
text/html是用来标识响应内容为HTML格式的,和请求表单数据的类型完全不匹配,直接排除。 - C选项的
application/json要求body是JSON格式字符串(比如JSON.stringify({bar: 'foo', lorem: 'ipsum'})),和当前的键值对拼接格式不符,错误。 - D选项的
multipart/form-data多用于上传文件或包含二进制数据的表单,而且格式里多写了Content-Type:前缀,当前body也不是这种多部分分隔的格式,显然不对。
内容的提问来源于stack exchange,提问作者Jojo
相关产品推荐
相关产品推荐

