Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to retrieve variables in php sent by axios post request [duplicate]

I want to send a POST request to a PHP script. I am using Axios:

axios.post('inc/vote.php', {
    id: this.selected,
}) .then(function (response) {
    console.log(response);
});

In the PHP file I am trying something like this to retrieve that id variable from axios:

$id = $_POST['id'];

But seems it is not doing anything.

What is the correct way to retrieve variables from the request?

like image 762
Rakesh Kohali Avatar asked Mar 02 '18 13:03

Rakesh Kohali


1 Answers

Axios sends data as a JSON inside request body not as a Form Data. So you can't access the post data using $_POST['id'].

Frontend Solution

To be able to access data using $_POST['id'] you have to use FormData as the following:

var form = new FormData();
form.append('id', this.selected);
axios.post('inc/vote.php', {
    form
  }) .then(function (response) {
    console.log(response);
  });

Backend Solution if you are interested in getting the request body as associative array you can use:

$data = json_decode(file_get_contents("php://input"), TRUE);
$id = $data['id'];
like image 69
Mohammed Abuiriban Avatar answered Sep 22 '22 18:09

Mohammed Abuiriban