Symfony 4: Политика CORS: Ответ на предполётный запрос не проходит проверку контроля доступа: Нет статуса HTTP ok - PullRequest
0 голосов
/ 06 июля 2019

Я пытаюсь получить ресурсы из моего REST API Symfony 4. Я уже получил некоторую ошибку CROS (различного происхождения) и исправил ее с помощью плагина Google Chrome, но на этот раз все по-другому: заголовок авторизации . Так что я думаю, в этом и заключается проблема.

На Почтальоне все работает нормально, но я знаю, что с браузером все по-другому.

Я получаю 2 ошибки:

OPTIONS http://localhost:8000/api/game.index 405 (Method Not Allowed)
Access to fetch at 'http://localhost:8000/api/game.index' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.

Похоже, я отправил метод OPTIONS и получил ошибку 405, но все равно не понимаю, почему

Вот мой код

fetch(URL, {
        method: 'GET',
        headers: {
            'Access-Control-Allow-Origin':'*',
            'Access-Control-Allow-Methods' : 'POST, GET, OPTIONS, DELETE, PUT',
            'Access-Control-Allow-Headers' : "Authorization",
            'Content-Type': 'application/json',
            'Accept': 'application/json',
            'Authorization': 'Bearer: ' + token,
        }
    })

php back end, я устанавливаю код состояния по умолчанию 200.

public function responseJson($data, int $status = 200) : Response
{
    $jsonData = $this->serializer->serialize($data, 'json');
    $response = new Response($jsonData);
    $response->headers->set('Content-Type', 'application/json');
    $response->setStatusCode($status);

    return $response;
}

Извините, я знаю, что это распространенная ошибка, я повсюду видел кучу сообщений об этом, но все, что я пробовал, не работало, и у меня больше не было выбора.

Спасибо, что прочитали

...