首页 > 解决方案 > Reactjs Api 调用在 Yii2 中不起作用

问题描述

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

这是我用于 API 调用的 React Js 代码,

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";
    }

对不起,我无法在我的代码中找到错误..!

标签: reactjsyii2

解决方案


首先,500意味着一般的服务器错误。因此,您需要根据我的评论发布错误日志以提供帮助。但是,我发现您在后端的代码是错误的。您没有在代码中使用 RESTful 控制器,因此它根本不是 REST API。所以我建议你通读指南中的 Restful APIs。话虽如此,您基本上需要:

  1. 通过继承来创建 Restful 控制器yii\rest\Controller
  2. 返回 Array、DataProvider 或实例yii\base\Model以保证自动序列化为 JSON

所以我会给你一个简单的例子来给你一个想法。请阅读指南以深入了解使用 Yii2 的 REST 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;
        ];
    }
}

推荐阅读