phpバックグラウンドはajaxがpost要求を送信してjsonデータを提出する2つの方法を受信する
今日phpのプロジェクトをして、jquery ajaxでバックグラウンドにpostタイプリクエストを送信するつもりで、送信するデータタイプはjsonです.しかし、頻繁にエラーが発生するのは、500エラーを報告するのではなく、後で取った値が空です.幾多の紆余曲折を経てやっと問題を解決した.
ajaxがpostリクエストを送信する2つの書き方をまとめました.
フロントエンドキー1:
バックエンドキー1:
フロントエンドコード2:
バックエンドコード2:
注意:
echoは数値と文字列を返すことができますが、オブジェクトを返すことはできません.非配列型のjsonデータはバックグラウンドでは配列に変換できない.ただし、オブジェクトに変換できます.
ajaxがpostリクエストを送信する2つの書き方をまとめました.
フロントエンドキー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データはバックグラウンドでは配列に変換できない.ただし、オブジェクトに変換できます.