今天做php的一个项目,计划用jquery ajax向后台发送post类型请求,发送的数据类型是json。然则一再失足,不是报500错误,就是在后取的值为空的。几经周折才把问题解决。
总结了两种ajax发送post请求的写法:
前端要害代码1:
//变量data是我的js工具经由JSON.stringify(data)处置之后的json字符串
$.ajax({
contentType: 'application/json; charset=utf-8', //这行无关紧要都行
type: 'POST',
url: "addinvest", //thinkphp的控制器方式
data: data,
success: function (message) {
console.log(message);
},
error: function (message) {
console.log(message);
}
});
后端要害代码1:
public function addinvest(){
$inputjson = file_get_contents('php://input');
$obj = json_decode($inputjson);
if(is_object($obj)){
echo ($obj->invest_name);
}
}
前端代码2:
$.ajax({
// contentType: 'application/json; charset=utf-8',
contentType:'application/x-www-form-urlencoded', //这行无关紧要都行
type: 'POST',
url: "addinvest",
data:{
data:data,
// "data":data //也可以
},
success: function (message) {
console.log(message);
},
error: function (message) {
console.log(message);
}
});
后端代码2:
public function addinvest(){
$jsonstr = $_POST["data"];
$obj = json_decode($jsonstr);
echo ($obj->invest_name);
}
需要注重:
echo可以返回数值和字符串,但还不可以返回工具;非数组类型的json数据在后台不能转换成数组.然则可以转换成工具。
原文链接:https://www.cnblogs.com/taoxiaoyao/p/12753460.html
本站声明:网站内容来源于网络,若有侵权,请联系我们,我们将及时处置。