【问题标题】:Internal Server Error 500 on Axios requestAxios 请求的内部服务器错误 500
【发布时间】:2020-07-29 10:53:17
【问题描述】:

我的 api 在http://localhost:81/log_api.php 上运行,然后我在同一台计算机上的 React 应用程序在http://localhost:3000 上运行。下面是 React 应用的代码:

import React, { Component } from 'react';
import axios from 'axios';

class Logging extends Component {

   state={
       pl_log:[]
     }

     async componentDidMount(){
        await axios.get("http://localhost:81/log_api.php")
         .then(response=>this.setState(
             {
               pl_log: response.data

             } ))

        console.log(this.state)       
     }


   render(){
       return(
           <div>
               Logging
           </div>
       )
   }
  }

  export default Logging;

Console.log 显示一些错误:

我也直接访问过http://localhost:81/log_api.php,完全没问题。它在浏览器上显示 JSON 数据。只有当我在 React 中使用 axios 时才会出现此问题。

文件名:log_api.php

<?php



$link = mysqli_connect("127.0.0.1:3307", "root", "root", "masterdb");

// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}

$sql = $link -> query("SELECT * FROM pl_log");
$result=array();

while ($data = $sql -> fetch_assoc()){
    $result[]=$data;
}
echo json_encode($result);


mysql_close($link);

?>

网络截图:

【问题讨论】:

  • 你的 PHP 服务器 CORS 准备好了吗?
  • 我在 Chrome 上添加了 CORS 扩展。
  • 我在本地计算机上运行 MAMP 服务器。
  • 500 错误号表示服务器存在一般问题。 503 表示运行时错误。
  • 你在混合mysql apis。 mysql_close() 不能与 mysqli 连接一起使用。我冒昧地猜测它在浏览器中也会失败,但是您看不到它,因为这是 PHP 尝试做的最后一件事。如果直接请求时查看网络选项卡,是否也会显示 500 错误(尽管显示了正确的 JSON)?

标签: javascript reactjs server axios internals


【解决方案1】:

您可以尝试使用 IP 地址 http://127.0.0.1

希望对你有用

【讨论】:

  • 很明显是抛出服务器错误,请检查你的PHP代码和CORS
猜你喜欢
  • 2019-04-27
  • 2015-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-25
  • 2019-02-19
相关资源
最近更新 更多