СЕТЕВАЯ ОШИБКА в Laravel при запросе API от Vue.js

#laravel #vue.js #cors

Вопрос:

Я обновлял свое приложение laravel, когда заметил , что на сервере один из запросов выдавал a NETWORK ERR , я изучил его и выяснил, что это может быть связано с политикой cors. Я использовал самостоятельно созданное промежуточное по cors, после этой проблемы я загрузил пакет «fruitcake/laravel-cors», но это не решило проблему. Дело в том, что это прекрасно работает на моем локальном хостинге раньше и до сих пор. Проблема возникает только на сервере. Если бы я мог воспроизвести эту ошибку в своем локальном, возможно, я смог бы найти проблему и решить ее. Вот мой cors.php файл:

 <?php

    return [
    
        'paths' => ['api/authenticate'],
    
        'allowed_methods' => ['*'],
    
        'allowed_origins' => ['*'],
    
        'allowed_origins_patterns' => [],
    
        'allowed_headers' => ['*'],
    
        'exposed_headers' => [],

        'max_age' => 0,

        'supports_credentials' => true,
    ]; 
 

И я зарегистрировал его как:

     protected $middleware = [
FruitcakeCorsHandleCors::class,
        AppHttpMiddlewareTrustProxies::class,
        AppHttpMiddlewareCheckForMaintenanceMode::class,
        IlluminateFoundationHttpMiddlewareValidatePostSize::class,
        AppHttpMiddlewareTrimStrings::class,
        IlluminateFoundationHttpMiddlewareConvertEmptyStringsToNull::class,
    ];
 

Я специально добавил api/authenticate в путь, потому что это был конкретный путь, вызывающий ошибку. Также ответ совершенно пустой. Любая помощь будет признательна.

Обновить:

Чтобы прояснить мою проблему, на моем сервере есть 2 конечные точки api, которые говорят https://www.a.com/api/login и https://www.a.com/api/authenticate. Оба запроса являются запросами на публикацию, и заголовок ответа на первый (рабочий) является:

 Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: https://www.a.com
Cache-Control: no-cache, private
Connection: Keep-Alive
Content-Encoding: gzip
Content-Length: 140
Content-Type: application/json
Date: Fri, 02 Jul 2021 13:21:05 GMT
Keep-Alive: timeout=5, max=100
Server: Apache/2.4.29 (Ubuntu)
Vary: Origin,Accept-Encoding
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
 

и ответ на 2-й (проблема) таков:

 Cache-Control: no-cache, private
Connection: close
Content-Length: 3255
Content-Type: application/json
Date: Fri, 02 Jul 2021 13:21:49 GMT
Server: Apache/2.4.29 (Ubuntu)
 

и консоль выводит это как исключение ошибки:

Access to XMLHttpRequest at 'https://www.b.com/api/authenticate' from origin 'https://www.a.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Я немного сбит с толку, но это выглядит так, как будто предполетный запрос отклоняется сервером в случае второго запроса.

Комментарии:

1. Вы проверяли журналы на наличие ошибок? Потому что любой ответ не 200 на запрос ОПЦИИ приведет к ошибке CORS

2. Да, это не запрос ОПЦИИ, также я читал, что это может быть ошибка cors, но я сам не уверен.

3. Запросы на ОПЦИИ отправляются браузером в рамках CORS

4. Нет, я ничего не видел в журналах. Никакого упоминания об этом вопросе.

5. Также отклик составляет 200, протестирован на местном