Reactjs Api调用在Yi2中不起作用

Reactjs Api调用在Yi2中不起作用,reactjs,yii2,Reactjs,Yii2,我是新来React js的,我使用Yii2作为我的后端。。!当我向yii2发送一个API请求时,它会返回500错误。我不知道我在哪里犯了错误 这是我的React Js API调用代码 fetch('localhost/learning-react/api/admin/signup', { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Typ

我是新来React js的,我使用Yii2作为我的后端。。!当我向yii2发送一个API请求时,它会返回500错误。我不知道我在哪里犯了错误

这是我的React Js API调用代码

fetch('localhost/learning-react/api/admin/signup', {
        method: 'POST',
        headers: {
          'Accept': 'application/json',
          'Content-Type': 'application/json'
        },
          body: JSON.stringify({
            fname:fname,
            lname:lname,
            email:email,
            uname:uname,
            passwd:passwd
          })
        }).then((response) => response.json())
          .then((responseJson) => {
             if(responseJson['status']==='1') 
             {
              alert(responseJson['msg']);
             }
           }
这是我的Yii2后端代码

 public function actionSignup()
    {   
        //$model = new TblUsers();
        return "success";
    }

抱歉,我无法在我的代码中找到错误

让我们试试下面的方法,可能会有帮助

您正在发出一个rest post请求,这意味着两件事,第一个信息将通过post请求传递,第二个不要忘记它的其余部分

  • 请尝试在浏览器中打开url,除非您定义了它应该打开的规则
  • 因此,继续打开:你应该在屏幕上看到一个“成功”,否则你将看到完整的500个错误

  • 如果您能够在浏览器上打开url,请重试该呼叫,并在“网络”选项卡上检查您的chrome调试器。查找500错误打开它并读取错误,它应该完全打印在响应选项卡上,即。

  • 解决这个问题后,不要忘记启用规则,只允许POST as请求,并为响应添加适当的格式,以便将其作为json使用

    Yii::$app->response->format=response::format\u JSON


  • 希望对调试有帮助。

    首先,
    500
    表示一般服务器错误。所以你需要根据我的评论发布你的错误日志来帮助我。但是,我发现你在后端的代码是错误的。您的代码中不使用restful控制器,因此它根本不是RESTAPI。所以我建议你通读一遍。话虽如此,您基本上需要:

  • 通过继承
    yii\rest\controller
    创建Restful控制器
  • 返回
    yii\base\Model
    的数组、数据提供程序或实例,以保证自动序列化为JSON
  • 因此,我将向您展示一个简单的示例,为您提供一个想法。请阅读本指南以深入了解


    500错误来自服务器,这是您所有的代码吗?将CORS头配置添加到Yi2代码库中,专门用于选项方法。这可能是一个原因,您能否共享您正在执行的API的确切信息意味着请求方法etclook进入
    500
    错误的详细信息它在服务器端,您可以通过
    ajax
    curl
    向API发送请求吗?您可以使用1.xdebug或2.use chrome打开debbuger,单击网络选项卡,确定给您带来500错误的文件并查看响应,这样您就可以看到返回的确切错误。现在我真的建议您开始使用Postman随时检查此API。
    <?php
    
    namespace app\modules\v1\controllers;
    
    use yii\rest\Controller;
    
    class LoginController extends Controller
    {
        public function actionSignup()
        {
            $model = new TblUsers();
            //register a user
            //return registred user
            return [
                'success' => true,
                'member' => $model;
            ];
        }
    }