我正在使用从Vue应用程序对axios.post()的调用来连接到我的php文件,该文件将一条记录插入sql db。 这是我从vue应用程序拨打axios的电话:
this.axios.post('http://localhost/DbConnection/submitSession.php' , {
params: {
sessionDate: this.date,
start_time: this.start_time,
end_time: this.end_time
},
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET, POST, PATCH, PUT, DELETE, OPTIONS",
"Access-Control-Allow-Headers": "Origin, Content-Type, X-Auth-Token"
}
})
.then((response) => {this.submitSessionSuccess(response);})
.catch((error )=> {this.submitSessionFailure(error);});
我知道得到的是响应,而不是错误,因为它将传递到then
,调用submitSessionSuccess
并将其传递给response
。但是,会话未被插入数据库,并且我无法在控制台中解析response
。
response
返回[Object] [object]
,response.data
不返回任何内容。
我也在下面发布了我的PHP代码。
此处发布的答案:How to get body of a POST in php?并未解决如何提取要发送到php的每个字段,以便可以将其插入到数据库中的问题。此处发布的答案:How to get JSON sent by AJAX to work with PHP不能回答问题,主要是因为我没有将发布请求数据作为JSON发送。
我感谢所有对此的帮助。
submitSession.php:
if (isset($_POST['sessionDate'], $_POST['start_time'], $_POST['end_time']))
{
require_once("connectToDB.php");
$date = $_POST['sessionDate'];
$startTime = $_POST['start_time'];
$endTime = $_POST['end_time'];
$query = "insert into session (sessionDate, startTime, endTime) VALUES (?, ?,?)";
$stmt = mysqli_prepare($con, $query);
mysqli_stmt_bind_param($stmt, "sss", $date,$startTime,$endTime);
mysqli_stmt_execute($stmt);
$affected_rows = mysqli_stmt_affected_rows($stmt);
$response=false;
if($affected_rows == 1){
$response = true;
}
else {
$response= false;
}
echo json_encode($response);
mysqli_stmt_close($stmt);
mysqli_close($con);
}
die();