CORS не разрешает запросы PATCH на apache 2.41

Я пытался использовать PATCH для создаваемого мной API. Все запросы терпят неудачу из-за CORS. Я попытался отредактировать файл .htaccess своего веб-сайта, включив в него следующее:

Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "PUT, OPTIONS, GET, POST, DELETE"

Тем не менее, он продолжает говорить, что «Предварительная проверка CORS не удалась», хотя оба заголовка отображаются как отправленные в запросе.

Я используя метод jQuery ajax для отправки запроса, если это может помочь.

Что я сделал не так? Как я могу это исправить?

Заранее спасибо и извините, если на это уже был дан ответ. Пока ни один из ответов не помог.

0
задан 23 December 2020 в 04:10
3 ответа

Поможет ли добавить PATCH в список разрешенных методов?

Header always set Access-Control-Allow-Methods "PATCH, PUT, OPTIONS, GET, POST, DELETE"
0
ответ дан 4 January 2021 в 10:21

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

Чтобы исправить это, вы должны сделать так, чтобы запросы, приходящие как OPTIONS, всегда возвращали 200 OK, несмотря ни на что. Браузер отправляет первый запрос на проверку CORS как OPTIONS, затем второй как PATCH.

0
ответ дан 4 January 2021 в 10:21

Я думаю, что это было бы Было бы проще, если бы вы могли сказать, какую платформу вы используете в качестве серверной части. Это веб-сервер apache, nginx?

Учитывая информацию о htaccess, я предполагаю, что вы используете apache. Вы уверены, что у сервера есть права на его использование?

Вы должны проверить свой apache2.conf или httpd.conf и иметь что-то похожее на это:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All # <---- Allow every command from htaccess
        Require all granted
</Directory>

Кроме того, если вы используете Linux, вы должны включить mod_rewrite с помощью что-то вроде этого:

a2enmod rewrite

Также, на всякий случай, ваш htaccess должен начинаться примерно так:

RewriteEngine On

Дайте мне знать, какие технологии вы используете. Я постараюсь помочь вам лучше.

-1
ответ дан 4 January 2021 в 10:21

Теги

Похожие вопросы