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
application/json和application/x-www-form-urlencoded都是表單數據發送時的編碼類型。
EncType:
enctype 屬性規定在發送到服務器之前應該如何對表單數據進行編碼。
默認地,表單數據會編碼為 "application/x-www-form-urlencoded"。就是說,在發送到服務器之前,所有字符都會進行編碼。
如下圖所示Content-Type:
application/x-www-form-urlencoded編碼類型的發送和接收
窗體數據被編碼為名稱/值對
客戶端:
發送"test=I'm Egret",瀏覽器按F12,Network中查看發送數據
服務端:
接收test數據
application/json的發送和接收
序列化后的 JSON 字符串
客戶端:
發送JSON格式字符串 '{"test":"I'm Client."}'
服務端:
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格式沒有,用數組代替。
使用json格式,php頭部需要加上如下代碼,否則會報錯
1
|
header(
'Access-Control-Allow-Headers:x-requested-with,content-type'
);
|