CORS Preflight 403, но у меня есть правильный заголовок - PullRequest
0 голосов
/ 27 августа 2018

Работа над ионным приложением, которое вызывает API на веб-сервере для взаимодействия с базой данных. Я сделал это однажды и скопировал код из этого проекта, но он не работает.

Вот заголовки, которые у меня есть на веб-сервере php:

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Methods: GET, HEAD, OPTIONS, POST, PUT, DELETE");
header("Access-Control-Allow-Headers: Authorization, Origin, X-Requested-With, Content-Type, Accept");
header("Access-Control-Expose-Headers: Access-Control-Allow-Headers, Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");

И это ошибка, которую я получаю при попытке запустить POST из приложения:

Cross-Origin Read Blocking (CORB) blocked cross-origin response <url remove by me> with MIME type text/html.
Failed to load <url removed by me>: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.

Код статуса 403 Запрещено

Потребовалось некоторое время, чтобы заставить заголовки работать для предыдущего проекта, и это тот же набор заголовков. На этот раз он размещен на другом сервере, но я не уверен, что это имеет какое-то значение для CORS. Файл существует, и это правильный путь к нему. Если перейти непосредственно к странице API, в заголовках отображается Access-Control-Allow-Origin * ... но попытка получить его из приложения просто не работает.

Любая помощь приветствуется. CORS может быть такой болью.

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Спасибо за все ваши предложения вчера, я наконец понял, что это было. После того, как ничто, казалось, не имело никакого значения или изменения в ответе, я связался с хостинговой компанией. Оказывается, они блокируют запросы OPTIONS на самом низком уровне хостинга.

Так что, если кто-то еще сталкивается с этим, свяжитесь с вашей хостинговой компанией и посмотрите, не заканчивается ли это.

0 голосов
/ 27 августа 2018

Предварительный запрос не может включать файлы cookie или другие общие заголовки аутентификации и должен получить 200 OK ответ.

Ваш сервер отвечает 403 Forbidden. Вы должны исключить запросы OPTIONS из требования авторизации.

Если я перехожу прямо на страницу API

… тогда вы делаете запрос GET, а не предварительный запрос OPTIONS.

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