规范把 HTTP 请求分为三个部分:状态行、请求头(headers)、消息主体(entity-body).服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。
application/x-www-form-urlencoded
浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据,提交的数据按照 key1=val1&key2=val2 的方式进行编码.很多时候,我们用 Ajax 提交数据时,也是使用这种方式.
multipart/form-data
这种方式一般用来上传文件
application/json
用来告诉服务端消息主体是序列化后的 JSON 字符串(用JSON.stringify处理数据)
Google 的 AngularJS 中的 Ajax 功能,以及Vue官方推荐组件axios默认就是提交 JSON 字符串
text/xml
没用过,略
使用 application/x-www-form-urlencoded 格式化
'Content-Type':'application/xxxx-form'
在浏览器中你可以如下使用 URLSearchParams API:
var params = new URLSearchParams();
params.append('param1','value1');
params.append('param2','value2');
axios.post('/foo',params);
使用 qs 库来格式化数据
var qs = require('qs');
axios.post('/foo', qs.stringify({'bar':123}));
在nodejs中,你可以如下使用 querystring :
var querystring = require('querystring');
axios.post('http://something.com/', querystring.stringify({foo:'bar'}));
使用 application/json 格式化
'Content-Type':'application/json'
const postData=JSON.stringify(this.formCustomer);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。