content-type类型总结

在人生的道路上,不管是潇洒走一回,或者是千山独行,皆须是自己想走的路,虽然,有的人并不是很快就能找到自己的方向和道路,不过,只要坚持到底,我相信,就一定可以找到自己的路,只要找到路,就不必怕路途遥远了。

导读:本篇文章讲解 content-type类型总结,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

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

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”类型

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/123946.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!