Сетевой ответ не отправляет заголовок «allow-origin» - PullRequest
0 голосов
/ 28 июня 2019

У меня возникает ошибка в моем веб-приложении при попытке обновить объект базы данных:

Доступ к XMLHttpRequest в «http://localhost:3001' от источника» http://localhost:8080' заблокирован политикой CORS: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

Это сетевые запросы: Предполетный запрос ; запрос PUT ;

Я использую Slim для маршрутизации сервера, Vue для клиентской маршрутизации и axios для соединения с БД.

Кажется, что в ответе отсутствует заголовок разрешения источника, но у меня установлен сервер для его отправки:

$app->add(function ($req, $res, $next) {
    $response = $next($req, $res);
    return $response
        ->withHeader('Access-Control-Allow-Origin', '*')
        ->withHeader('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Accept, Allow, Origin, Authorization, Access-Control-Allow-Origin')
        ->withHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, PATCH, OPTIONS');
});

Который работает с объектами разного статуса (табличное значение). Я подозреваю, что он не использует этот ответ для объектов этого определенного статуса, но он использует ту же форму и методы. Я не понимаю, почему он использовал бы другой ответ.

Обновление

Таблица, которую я пытаюсь обновить (документ), служит внешним ключом для другой таблицы (поправка) в БД. Я обнаружил, что если я отсоединяю поправку от документа, обновление работает. Может быть, ошибка CORS является ложноположительным?

1 Ответ

0 голосов
/ 01 июля 2019

В конце концов, это был ложный положительный результат. Массив внутри объекта, который я пытался отправить в базу данных, казался проблемой. После удаления из запроса обновление работало отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...