Angular CodeIgniter 4 API,角度10:$this->;请求->;getPost()始终为空

Angular CodeIgniter 4 API,角度10:$this->;请求->;getPost()始终为空,angular,codeigniter,post,Angular,Codeigniter,Post,我正在将我的CI3应用程序改写为CI4,事实上,我面临着很多问题 现在,我有一个构建在CI4上的API,get请求对Angular前端和Postman非常有效,但是post请求只对Postman有效 这是my Routes.php: $routes->options('(:any)', 'LoginController::options'); $routes->get('/api/login', 'LoginController::index'); $routes->post(

我正在将我的CI3应用程序改写为CI4,事实上,我面临着很多问题

现在,我有一个构建在CI4上的API,get请求对Angular前端和Postman非常有效,但是post请求只对Postman有效

这是my Routes.php:

$routes->options('(:any)', 'LoginController::options');
$routes->get('/api/login', 'LoginController::index');
$routes->post('/api/login/login', 'LoginController::login');
这是我的LoginController的一部分:

<?php
    namespace App\Controllers;

    use CodeIgniter\Controller;
    use App\Models\LoginModel;
    use CodeIgniter\HTTP\Response;

    class LoginController extends Controller
    {

    protected $login_model;

    public function __construct()
    {
        $this->login_model = new LoginModel();
    }

    public function options(): Response
    {
        return $this->response->setStatusCode(Response::HTTP_OK); // Status code for CORS
    }

    public function index()
    {
        return;
    }

    public function login()
    {

    try {
        $data = $this->request->getPost();

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

        list($user, $status) = $this->login_model->login($username, $password);
    }
    [...]

我想你必须试试$this->request->getJSON(),它对我有用。

它有用!我不知道是谁把这个答案记为否定的。无论如何,另一个选项是使用:file\u get\u contents(“php://input");
login(username: string, password: string) {
    const httpOptions = {
      headers: new HttpHeaders({
        'Content-Type': 'application/json'
      })
    };
    
    let body = {
         username: username,
         password: password
    }

    return this.http.post<any>(
      `${this.API_URL}/login/login`, 
      body,
      httpOptions
    ).pipe [...]