从vue应用程序进行的axios.post()调用未插入数据库

时间:2018-08-28 20:44:04

标签: php vuejs2 axios

我正在使用从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。但是,会话被插入数据库,并且我无法在控制台中解析responseresponse返回[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();

0 个答案:

没有答案