规范把 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);


清儿
72 声望0 粉丝