如何在PHP中处理axios请求



我正在尝试将数据发送到PHP文件。

我尝试添加{headers:{'content-type: application/JSON'}},但仍然无法访问PHP中的数据。

Javascript:

axios.post("http://localhost/Contact_Manager/src/fetchcontacts.php",{action:'getcontacts'})
.then(res => {
let posts = res.data;
commit('setposts',posts)
})
.catch(err => console.log(err))

PHP:

<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: *');
header('Access-Control-Allow-Headers: *');
$db = mysqli_connect("localhost","root","","contacts");
if(!$db){
die("failed to connect to database".mysqli_connect_error());
}
$recieved_data=json_decode(file_get_contents("php://input"),true);
var_dump($recieved_data->action)
?>

PHP文件中有一条警告:

注意:正在尝试获取项目目录中非对象的属性"action">

只需将最后一行更改为var_dump($received_data);即可查看实际接收到的内容,这清楚地表明action不是属性($received_data也不是对象(,而是数组。因此,您不能使用->表示法,而需要使用[]表示法来访问属性的值:

array(1) {
["action"]=>
string(4) "test"
}

var_dump($recieved_data["action"]);应该产生正确的输出。

背景:传递true作为json_decode()的第二个参数,告诉PHP将您的输入解析为关联数组,而不是对象(请参阅PHP文档(。如果要将其用作对象(即使用$received_data->action(,则需要删除第二个参数或将其设置为false

最新更新