为了账号安全,请及时绑定邮箱和手机立即绑定

php 如何获取ajax 发送的json字符串??

php 如何获取ajax 发送的json字符串??

PHP
largeQ 2019-03-08 08:45:19
前端: $.ajax({ url: url , method: 'post' , contentType: 'application/json' , data: JSON.stringify({ name: 'test' }) }); 服务端: print_r($_REQUEST); // [] print_r($_POST); // [] print_r($_GET); // [] // 最后! print_r(file_get_contents('php://input')); // {"name": "test"} 是否发送的 json 字符串只能通过 php://input 这种方式获取?通过这种方式进行前后端数据交互有什么优势??
查看完整描述

8 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

1.php的底层代码会对http请求做一个基本的处理,然后放进$_GET,$_POST,$_REQUEST
2.当请求是原生json字符串时,php底层无法处理,所以只能从php://input中获取
3.对于强类型语言,用json传的好处是他们可以把json转为对象,对于php其实并没有好处

查看完整回答
反对 回复 2019-03-18
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

你这ajax写的忒麻烦了,直接

$.ajax({
    url: url,
    method: 'POST',
    data: {name: 'test'}
});

就行了,很多东西扔给jQ来处理就好。

查看完整回答
反对 回复 2019-03-18
?
慕容708150

TA贡献1831条经验 获得超4个赞

字符串的话,使用 file_get_contents('php://input') 就行了。

php接收post数据,一般就两种方式:
1.$_POST
2.file_get_contents('php://input')

一般 ajax 库两种方式都支持,但默认支持的方式不一样:

  1. jQuery的 ajax ,php后端直接使用 $_POST 接收就可以了。
  2. axios ,默认情况下需要用 第二种方法接收。

但你可以修改相应的配置,想了解的话,自己搜索一下。

另外,jQuery的ajax支持多层嵌套,而 axios 不支持。

查看完整回答
反对 回复 2019-03-18
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

$_POST,$_GET,是获取表单数据的,
也就是Content-Type=application/x-www-form-urlencodedmultipart/form-data

查看完整回答
反对 回复 2019-03-18
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

一般用json类型传递参数适合比较复杂的交互,通过json传递,后端可以直接映射到一个实体上,比较方便后端代码编写。同时,js对json格式也支持的比较友好,很多前端开发,通过json也比较方便处理。

查看完整回答
反对 回复 2019-03-18
  • 8 回答
  • 0 关注
  • 636 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信