Angular CodeIgniter 4 API,角度10:$this->;请求->;getPost()始终为空
我正在将我的CI3应用程序改写为CI4,事实上,我面临着很多问题 现在,我有一个构建在CI4上的API,get请求对Angular前端和Postman非常有效,但是post请求只对Postman有效 这是my Routes.php: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(
$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 [...]