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);
}
Другие вопросы по тегам