Slim 3 Http Удалить метод не работает
Я пытаюсь реализовать http DELETE. Приложение написано с использованием php и slim3 framework. Фронтенд угловой 2.
Если шаблон выглядит так:$slimApp->delete('/delete', ...)
Все отлично.
Как только я введу такие параметры, как: $slimApp->delete('/delete/{id}', ...)
Я получаю следующую ошибку:
Ответ на запрос предварительной проверки не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок "Access-Control-Allow-Origin".
Я уже прочитал документы https://www.slimframework.com/docs/cookbook/enable-cors.html но я не могу заставить его работать.
Вот мое промежуточное ПО:
<?php
class MyMiddleware {
public function __invoke(Request $req, Response $res, $next) {
$res->withHeader('Access-Control-Allow-Origin', 'http://localhost:8100')
->withHeader('Access-Control-Allow-Credentials', 'true')
->withHeader('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Accept, Origin, Authorization')
->withHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
return $next($req, $res);
}
}
$app = new \Slim\App([
"settings" => [
"determineRouteBeforeAppMiddleware" => true
]
]);
$app->add(new MyMiddleware());
Есть идеи, в чем может быть проблема?
2 ответа
ОК решил проблему..Htaccess просто не позволил запросу "добраться" до кода. Так что мне просто нужно было оптимизировать правила.
Ответ неизменен, переназначьте переменную.
public function __invoke(Request $req, Response $res, $next) {
$res = $res->withHeader('Access-Control-Allow-Origin', 'http://localhost:8100')
->withHeader('Access-Control-Allow-Credentials', 'true')
->withHeader('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Accept, Origin, Authorization')
->withHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
return $next($req, $res);
}