Задать вопрос
INPVLSA
@INPVLSA
Типо Full-Stack

Как исправить ошибку с отсутствием доступа AJAX?

Добрый вечер. У меня появилась следующая ошибка:

Failed to load https://*domain1*/wp-admin/admin-ajax.php: The 'Access-Control-Allow-Origin' header has a value 'https://*domain2*/' that is not equal to the supplied origin. Origin '*domain2*' is therefore not allowed access.


Где *domain1* - домен на который производится запрос, *domain2* - домен, с которого производится запрос и домен, прописанный в серверной части в Access-Control-Allow-Origin.

Я прочел уже очень много статей, искал различные решения, но не одно мне так и не помогло. Сайт на Wordpress, как вы уже наверное поняли.

В серверную часть (т.е. admin-ajax.php) я пытался добавить изначально такую строчку:
@header( 'Access-Control-Allow-Origin: *' );
Но в итоге получаю ошибку:

Failed to load https://*domain1*/wp-admin/admin-ajax.php: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. Origin 'https://*domain2*' is therefore not allowed access. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.

Также эту:
@header( 'Access-Control-Allow-Origin: https://*domain2*' );
и получал ошибку, которую я указал в самом начале

Я знаю что суть заключается в том, что HttpRequest не хочет передавать данные, из-за того что изменяются домены, в соображениях безопасности. Знающие люди, посоветуйте пожалуйста, как можно обойти эту ошибку либо какой-нибудь верное решение, связанное с WP, о коем я не знаю.

Заранее благодарен
  • Вопрос задан
  • 691 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
INPVLSA
@INPVLSA Автор вопроса
Типо Full-Stack
Всё же в итоге танцев с бубном над кодом нашёл решение:
@header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
@header( 'Access-Control-Allow-Origin: https://domain.com' ); // Без слеша в конце. Не знаю почему, но это важно
@header( 'Access-Control-Allow-Credentials: true' );
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
а если домен нормально написать?
@header( 'Access-Control-Allow-Origin: https://domain2.com' );
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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