客户端 Post 传递的 Json 参数
  • 分类:php
  • 发表:2019-08-23
  • 围观(277)
  • 评论()

post提交数据的方式,主要体现在http协议头上的Content-Type字段,不同的Content-Type对应不同的http请求体,与之相应的php接收数据方法也不同。

1.application/x-www-form-urlencoded

html中的form表单,如果不设置enctype属性,就默认用该方式提交数据。

Content-Type: application/x-www-form-urlencoded
发送的数据数据进行了urlencode编码
可以使用$_POST获取数据。

2.multipart/form-data

html中的form也可以设置这种方式上传数据

Content-Type: multipart/form-data;
发送的数据不会进行urlencode编码;可以使用$_POST获取数据
application/x-www-form-urlencoded方式会对数据进行urlencode而multipart/form-data则不会。
所以如果发送大段汉字时,使用后者可能会让请求长度变小

P.S:发送文件时,必须使用该方式(enctype=“multipart/form-data”)

3.application/json

content-type有application/json 无法通过html的form形式发送。

Content-Type: application/json;
浏览器传来的是raw形式的数据,整个就是个编码的JSON,所以$_POST是取不到值的
可以使用php://input接收数据:
$a = file_get_contents(“php://input”);   之后进行json_decode

早先的php版本,还可以从$GLOBALS[‘HTTP_RAW_POST_DATA’]获取数据,但php7之后,不再支持这种方式

 

 

发送 接收
application/x-www-form-urlencoded $_POST
multipart/form-data(数据) $_POST
multipart/form-data(文件) $_FILES
raw php://input
 


共有 0 条评论

analytical essay conclusion steps to writing an argumentative essay writing a scholarship essay essay introduction outline speech writing services custom dissertation writing master thesis proposal law essay help uk dissertation writing help essay outline format essay proofreading service