Я пытался использовать 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 для отправки запроса, если это может помочь.
Что я сделал не так? Как я могу это исправить?
Заранее спасибо и извините, если на это уже был дан ответ. Пока ни один из ответов не помог.
Поможет ли добавить PATCH в список разрешенных методов?
Header always set Access-Control-Allow-Methods "PATCH, PUT, OPTIONS, GET, POST, DELETE"
Таким образом, очевидно, браузеру не нравилось, что мой сервер возвращал код состояния, отличный от 200, и, таким образом, приводил к сбою предварительной проверки CORS .
Чтобы исправить это, вы должны сделать так, чтобы запросы, приходящие как OPTIONS, всегда возвращали 200 OK, несмотря ни на что. Браузер отправляет первый запрос на проверку CORS как OPTIONS, затем второй как PATCH.
Я думаю, что это было бы Было бы проще, если бы вы могли сказать, какую платформу вы используете в качестве серверной части. Это веб-сервер 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
Дайте мне знать, какие технологии вы используете. Я постараюсь помочь вам лучше.