前端:
$.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其实并没有好处
开心每一天1111
TA贡献1836条经验 获得超13个赞
你这ajax写的忒麻烦了,直接
$.ajax({
url: url,
method: 'POST',
data: {name: 'test'}
});
就行了,很多东西扔给jQ来处理就好。
慕容708150
TA贡献1831条经验 获得超4个赞
字符串的话,使用 file_get_contents('php://input') 就行了。
php接收post数据,一般就两种方式:
1.$_POST
2.file_get_contents('php://input')
一般 ajax 库两种方式都支持,但默认支持的方式不一样:
- jQuery的 ajax ,php后端直接使用 $_POST 接收就可以了。
- axios ,默认情况下需要用 第二种方法接收。
但你可以修改相应的配置,想了解的话,自己搜索一下。
另外,jQuery的ajax支持多层嵌套,而 axios 不支持。
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
$_POST
,$_GET
,是获取表单数据的,
也就是Content-Type
=application/x-www-form-urlencoded
或multipart/form-data
杨__羊羊
TA贡献1943条经验 获得超7个赞
一般用json类型传递参数适合比较复杂的交互,通过json传递,后端可以直接映射到一个实体上,比较方便后端代码编写。同时,js对json格式也支持的比较友好,很多前端开发,通过json也比较方便处理。
- 8 回答
- 0 关注
- 636 浏览
添加回答
举报
0/150
提交
取消