application/json和application/x-www-form-urlencoded区别

四种常见的 POST 提交数据方式(application/x-www-form-urlencoded,multipart/form-data,application/json,text/xml)

 https://www.jianshu.com/p/e47abb91465d

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

application/json和application/x-www-form-urlencoded都是表单数据发送时的编码类型。

 

EncType:

enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。

默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码。

 

如下图所示Content-Type:

四种常见的 POST 提交数据方式(application/x-www-form-urlencoded,multipart/form-data,application/json,text/xml),application/json和application/x-www-form-urlencoded区别 随笔 第1张

 

 

 

application/x-www-form-urlencoded编码类型的发送和接收

窗体数据被编码为名称/值对

客户端:

发送"test=I'm Egret",浏览器按F12,Network中查看发送数据

四种常见的 POST 提交数据方式(application/x-www-form-urlencoded,multipart/form-data,application/json,text/xml),application/json和application/x-www-form-urlencoded区别 随笔 第2张

 

服务端:

接收test数据

四种常见的 POST 提交数据方式(application/x-www-form-urlencoded,multipart/form-data,application/json,text/xml),application/json和application/x-www-form-urlencoded区别 随笔 第3张

 

 application/json的发送和接收

 序列化后的 JSON 字符串

 

客户端:

发送JSON格式字符串 '{"test":"I'm Client."}'

四种常见的 POST 提交数据方式(application/x-www-form-urlencoded,multipart/form-data,application/json,text/xml),application/json和application/x-www-form-urlencoded区别 随笔 第4张

 

服务端:

1. 用file_get_contents拿Post数据。$_POST['test']取不到数据。

2. 然后使用json_decode解码。 原始file_get_contents是字符串?

3. php中json访问方式 $json->test。php中没有{test:"I'm Client"}这种格式的,$json = {test:"I'm Client"}会报错。

4. 返回数据时将数组json_encode编码。php中json格式没有,用数组代替。

四种常见的 POST 提交数据方式(application/x-www-form-urlencoded,multipart/form-data,application/json,text/xml),application/json和application/x-www-form-urlencoded区别 随笔 第5张

 

使用json格式,php头部需要加上如下代码,否则会报错

1 header( 'Access-Control-Allow-Headers:x-requested-with,content-type' );
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄