无法从php返回数据以做出反应

时间:2019-04-02 05:34:43

标签: php mysql reactjs

您好,每当我尝试从php返回数据以响应组件时,都会收到此错误

  

在以下位置访问XMLHttpRequest   原产地的“ http://localhost/loginpage/src/components/login.php”   “ http://localhost:3005”已被CORS政策屏蔽:对   预检请求未通过访问控制检查:否   请求中存在“ Access-Control-Allow-Origin”标头   资源。 Login.js:25

     
    
      

错误:网络错误         在createError(createError.js:17)         在XMLHttpRequest.handleError(xhr.js:87)

    
  

当我使用echo时,我正在获取数据,但不是从returnprint_r语句中获取数据。

我正在使用SQL作为查询语言和axios发送请求。

使用的方法:

handleClick(event){
  axios({
    method: 'post',
    url: 'http://localhost/loginpage/src/components/login.php',
    headers: { 'content-type': 'application/json' },
    data: this.state
  })
    .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.log(error);
  });

    }

我的php文件是

<?php 

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: *");
$data = json_decode(file_get_contents("php://input"), TRUE);

$username = $data['username'];
$password = $data['password'];

$host = 'localhost';
$dbname = 'users';
$user= 'root';
$pass = '';
$conn = new mysqli($host, $user, $pass);

// Checking connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$conn->select_db("userss");

$result = "SELECT * FROM UserDetail WHERE email='$username' AND password='$password';";

$datas = [];
if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        $a = {
            id:$row["id"],
            fname:$row["firstname"],
            lname:$row["lastname"],
            email:$row["email"]
        }
        array_push($datas, $a);
    }
    print_r($datas);
} else {
    echo "0 results";
}
$conn->close();
?>

我不知道如何使用CORS,所以请以我可以使用或可以用来替换我的代码的代码形式给我一个答案。 任何人都请提供一个好的解决方案。我是新来的反应。

0 个答案:

没有答案