Проблема CORS с Wordpress и Chromebook - PullRequest
0 голосов
/ 20 февраля 2019

Я занимаюсь разработкой сайта на своей основной машине для разработки, и иногда мне нравится кодировать в другом месте вне своего рабочего стола и на своем Chromebook, но все еще в той же сети.Для других проектов я включаю плагин VirtualHosts для доступа к тому, над чем я работаю.Текущий, который я использую, называется просто «Виртуальные хосты» (https://chrome.google.com/webstore/detail/virtual-hosts/fbkigokjancnolojmhcgcfhgeeljolkh?hl=en).. Это прекрасно работает, поскольку проекты, построенные, скажем, с Laravel, имеют относительные пути.

Проблема, с которой я сталкиваюсь, заключается в том, что при использованииЭтот метод, чтобы поиграть с Wordpress, я получил ряд предупреждений CORS в Dashboard из-за того, что WP предоставляет абсолютные пути к ресурсам, таким как вызовы AJAX. Плагин выше переписывает запрос, введенный в адресную строку, и отображает его вIP-адрес. Однако при редактировании страницы появляются следующие ошибки:

Access to fetch at 'http://dev.somedomain.com/wp- 
json/wp/v2/pages/2/autosaves?_locale=user' from origin ' 
http://192.168.0.14' has been blocked by CORS policy: Response to 
preflight request doesn't pass access control check: Redirect is not 
allowed for a preflight request.

Эти запросы не анализируются, происходит сбой CORS и я не могу правильно взаимодействовать с панелью мониторинга. Приведенная выше ошибка возникла в результате попыткичтобы сохранить сообщение.

Я пытался добавить Header set Access-Control-Allow-Origin "*" к моему .htaccess, в результате чего:

Header set Access-Control-Allow-Origin "*"

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.php$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Но без изменений ошибки.

СерверApache работает на Ubuntu 16.04. У меня также есть доступ к маршрутизатору, если есть решение для его настройки.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Самое простое решение, которое я нашел, - изменить адрес сайта установки Wordpress на IP-адрес сервера.Очевидно, это должно быть сделано только для разработки, но это решило мою проблему.

enter image description here

0 голосов
/ 21 февраля 2019

При наличии CORS браузер отправляет запрос OPTIONS (предварительный просмотр) перед отправкой первого сообщения POST.

Ответ на запрос предварительного просмотра не проходит проверку контроля доступа: Redirect не выполняетсяразрешено для предварительного запроса.

Скорее всего, Apache отправляет перенаправление, но нет способа узнать, если или почему, если вы не проверите логи apache.

...