content-type

  • content-type是http请求的响应头和请求头的字段。当作为响应头时,告诉客户端实际返回的内容的内容类型。作为请求头时,客户端告诉服务器实际发送的数据类型。
  • 前端开发过程中,需要跟后端工程师对接接口的数据格式,不同的数据类型对于服务器来说有不同的处理方式,因此我们需要关注不同的conten-type类型.

1. application/x-www-form-urlencoded

  • 浏览器原生form表单默认的提交方式(在不设置enctype的情况下)。
  • 提交的数据按照 k1=v1&k2=v2的方式进行编码,key和val都进行了URL转码.此时请求头的格式如下:
content-type: application/x-www-form-urlencoded;charset=utf-8
form-data:  k1=v1&k2=v2
  • 非字母或数字的字符会被进行编码(编码方式https://developer.mozilla.org/zh-CN/docs/Glossary/percent-encoding),这也是为什么这种方式不支持二进制数据的原因。

2. multipart/form-data

  • 与application/x-www-form-urlencoded 的区别是它支持文件的传输,并且它的传输数据放在request-payload里,并且以bounday进行分隔。
  • 常见的 POST 数据提交的方式。我们使用表单上传文件时,必须让 form 的 enctype 等于这个值
<form action="/" method="post" enctype="multipart/form-data"><input type="text" name="name" value="some text"><input type="file" name="fileName"><button type="submit">Submit</button>
</form>
  • 请求头
POST /foo HTTP/1.1
Content-Length: 68137
Content-Type: multipart/form-data;
boundary=---------------------------974767299852498929531610575
---------------------------974767299852498929531610575
Content-Disposition: form-data; name="name"  value="some text"
---------------------------974767299852498929531610575
Content-Disposition: form-data; name="fileName"; filename="foo.txt"
Content-Type: text/plain
(content of the uploaded file foo.txt)
---------------------------974767299852498929531610575--

4.application/json

  • 消息主体是序列化后的 JSON 字符串,这个类型越来越多地被大家所使用
POST http://www.example.com HTTP/1.1
Content-Type: application/json;charset=utf-8{"title":"test","sub":["a","b","c"]}
  • 它用来告诉服务端消息主体是序列化后的 JSON 字符串,其中一个好处就是JSON 格式支持比键值对复杂得多的结构化数据。
  • 特别适合 RESTful 的接口。传递JSON字符串可以方便的让前端转为js的对象,进行显示和逻辑操作。

5.text/plain

  • 传统的ajax请求提交
function submit2() {var xhr = new XMLHttpRequest();xhr.timeout = 2000;var obj = {a: 1, b: 2};xhr.open('POST', '/');xhr.send(obj);
}

6.text/xml

  • 是一种使用 HTTP 作为传输协议,XML 作为编码方式的远程调用规范
POST [http://www.example.com](http://www.example.com) HTTP/1.1
Content-Type: text/xml
<!--?xml version="1.0"?-->
<methodcall> <methodname>method1</methodname> <params> <param> <value>50</value> </param></params>
</methodcall>
  • 总结

1.传统的ajax请求时候,Content-Type默认为"文本"类型。

2.传统的form提交的时候,Content-Type默认为"Form"类型。

7. 对于axios请求,不同的请求方式content-type也不同

function submit3() {var p1 = 'name=a&val=b';var p1 = {name: a, val: b};axios.post('/url', p1 )
}
  • 当传递的是字符串的时候:application/x-www-form-urlencoded

  • 当传递的是对象的时候:application/json

  • 总结:

1.axios传递字符串的时候,Content-Type默认为"Form"类型。

2.axios传递对象的时候,Content-Type默认为"JSON"类型

content-type类型总结相关推荐

  1. SharePoint2010 内容类型剖析(Content Type/ 內容類型)

    原文地址:http://sharepoint410.wordpress.com/2011/01/06/sharepoint2010-%E5%86%85%E5%AE%B9%E7%B1%BB%E5%9E% ...

  2. Media Type 媒体类型(MIME Type、Content Type)

    媒体类型用于声明随之而来的数据的格式.又称:MIME类型.MIME Type.Content Type. 是一种用于在异构系统.分布式网络之间声明并传递信息主体格式的方法. 一般的,在文件系统中,我们 ...

  3. restTemplate http请求报错:no suitable HttpMessageConverter found for response type and content type

    报错信息: org.springframework.web.client.UnknownContentTypeException: Could not extract response: no sui ...

  4. Posted content type isn't multipart/form-data

    版权声明:欢迎转载,请注明沉默王二原创. https://blog.csdn.net/qing_gee/article/details/48712507 在有文件上传的表单提交过程中,搞不好就会报Po ...

  5. 阿里云存储OSS中设置上传文件content type

    阿里云存储OSS中设置上传文件ContentType 如果你使用浏览器上传文件,则浏览器会自动在header中设置正确地content type,然后对文件的访问会得到正确地回应. 如果采用编程的方式 ...

  6. Sharepoint学习笔记—Site Definition系列-- 2、创建Content Type

    Sharepoint本身就是一个丰富的大容器,里面存储的所有信息我们可以称其为"内容(Content)",为了便于管理这些Conent,按照人类的正常逻辑就必然想到的是对此进行&q ...

  7. Sharepoint学习笔记—ECM系列—1 Content Type Syndication

    我们可以通过Content Type Syndication来实现在Sharepoint Farm内的不同Site Collection之间共享内容类型(Content Types).也就是说,管理员 ...

  8. Error while extracting response for type [] and content type [],json返回值被解析为xml

    在使用restTemplate请求restful接口时,在特定情况下总会将返回的json数据解析为xml数据然后处理,接着就会爆出标题中的错误: Error while extracting resp ...

  9. Content type 'multipart/form-data;boundary=----WebKitF;charset=UTF-8' not supported

    springboot后台接收文件和对象的时候,会报Content type 'multipart/form-data;boundary=----WebKitF;charset=UTF-8' not s ...

  10. 请求状态为200,前端报系统出错,后端日志报“Content type ‘application/octet-stream‘not supported“错误

    请求后端出现"Content type 'application/octet-stream'not supported"错误 错误描述: Content type 'applica ...

最新文章

  1. K8S 最佳实践-映射外部服务 Endpoints / ExternalName
  2. python 调用c/c++
  3. msra数据集_ACL2020 | 香侬科技提出使用Dice Loss缓解数据集数据不平衡问题
  4. 第二阶段冲刺第六天(6月5号)
  5. 学Excel函数公式,怎能不会这个组合套路?
  6. linux 环境下配置python虚拟环境
  7. Android里的shell的系统命令
  8. 计算机多系统启动光盘制作,U盘多系统启动制作教程一步步教你做多系统启动盘...
  9. 软件测试报告模板excel,测试报告模板,excel.docx
  10. html5拾色器功能,html5 学习简单的拾色器
  11. CPU-显卡-硬盘性能天梯图排行榜源码
  12. 计算机应用基础课考试题B,大工《计算机应用基础》课程考试模拟试卷B
  13. Training!!!
  14. MacBook合盖不休眠
  15. dobot moveit 包_越疆科技dobot(magician)机械臂在ROS moveit下gazebo仿真控制和真实控制功能包 有兴趣的可以下载来玩...
  16. PDF文档电子公章的初试
  17. 5万字用纯C语言从零开始实现人脸检测
  18. 个性定制化CRM,完美契合企业需求
  19. CloudCompare:获取点云信息 实现移位(取点-存点)v2.10.3 +VS2017 + Qt5.9.8
  20. java基于springboot英语学习网站

热门文章

  1. 新零售mysql设计(品牌表 分类表 品牌分类表)(二次修改)
  2. Guideline 1.2 - Safety - User Generated Content 审核通过
  3. 接着反查更多有用信息
  4. 关于 Python 当中式子 f1, f2 = f2, f1+f2 能否拆分成 f1 = f2 ; f2 = f1 + f2 的问题
  5. html5 图形水平运动,图形与几何:抽象图形特征,发展空间观念
  6. DS-SLAM的运行[TUM-1] process has died [pid 27902, exit code -11, cmd /home/jerry/catkin_ws/src/DS-SLAM/
  7. python cocos2d新手教程_Cocos2d--python教程之helloworld
  8. java 压缩、解压缩 tar.gz
  9. R语言使用epiDisplay包的lroc函数可视化logistic回归模型的ROC曲线并输出诊断表、可视化多条ROC曲线、自定义设置lty参数为指定ROC曲线线条的类型(实现、虚线、点线等)
  10. 关于shtml页面include问题解决方案