Я пытаюсь построить API-интерфейс Slim Framework версии 4 для моего angular приложения.
При каждом запросе я получаю
Type: Slim\Exception\HttpMethodNotAllowedException
Code: 405
Message: Method not allowed. Must be one of: POST
File: G:\xampp\htdocs\slim\vendor\slim\slim\Slim\Middleware\RoutingMiddleware.php
Line: 96
Trace: #0 G:\xampp\htdocs\slim\vendor\slim\slim\Slim\Routing\RouteRunner.php(72): Slim\Middleware\RoutingMiddleware->performRouting(Object(Slim\Psr7\Request))
#1 G:\xampp\htdocs\slim\vendor\slim\slim\Slim\Middleware\ErrorMiddleware.php(98): Slim\Routing\RouteRunner->handle(Object(Slim\Psr7\Request))
#2 G:\xampp\htdocs\slim\vendor\slim\slim\Slim\MiddlewareDispatcher.php(140): Slim\Middleware\ErrorMiddleware->process(Object(Slim\Psr7\Request), Object(Slim\Routing\RouteRunner))
#3 G:\xampp\htdocs\slim\app\Middlewares\RequestUser.php(19): class@anonymous->handle(Object(Slim\Psr7\Request))
#4 G:\xampp\htdocs\slim\vendor\slim\slim\Slim\MiddlewareDispatcher.php(283): App\Middlewares\RequestUser->__invoke(Object(Slim\Psr7\Request), Object(class@anonymous))
#5 G:\xampp\htdocs\slim\vendor\slim\slim\Slim\MiddlewareDispatcher.php(81): class@anonymous->handle(Object(Slim\Psr7\Request))
#6 G:\xampp\htdocs\slim\vendor\slim\slim\Slim\App.php(211): Slim\MiddlewareDispatcher->handle(Object(Slim\Psr7\Request))
#7 G:\xampp\htdocs\slim\vendor\slim\slim\Slim\App.php(195): Slim\App->handle(Object(Slim\Psr7\Request))
#8 G:\xampp\htdocs\slim\public\index.php(42): Slim\App->run()
#9 {main}
[Tue Feb 18 11:38:13 2020] ::1:57190 [200]: /login
[Tue Feb 18 11:38:14 2020] ::1:57191 [200]: /login
Хорошая часть - мой API работает нормально, как и ожидалось. Но я вижу эту ошибку при каждом вызове.
Как мне это преодолеть.
Если я попробую получить вызов из моего браузера, то ошибки не будет.
Если я сделаю вызов ajax, на вкладке Сеть не отобразится ошибка
Но моя командная строка выдает эту ошибку
Редактировать 1
Добавление определений маршрута
$app->get('/', '\App\Controllers\HomeController:home');
$app->post('/login', '\App\Controllers\UserController:login');
Изменить 2
Добавление angular код
login(data){
const url = environment.api+'login';
return this.http.post(url, data);
}
Ответ Мне нужно добавить
$app->options('/{routes:.+}', function ($request, $response, $args) {
return $response;
});
в моем индексе. php, чтобы принять все параметры запроса
http://www.slimframework.com/docs/v4/cookbook/enable-cors.html