Стажировка на реальных проектах:
наполнение портфолио, помощь с работой и заказами, пробные собеседования. Жми для подробностей→
⊗jsPmBsCP 32 of 61 menu
Бесплатный курс по Верстке. От новичка до продвинутого верстальщика! Начало 11 ноября. Жми для записи!

Политика CORS в AJAX запросах на PHP

Через AJAX нельзя просто так делать запросы к другим сайтам. Такие запросы регулируются политикой CORS. Вкратце, по этой политике сайт, на который вы направляете запрос, должен согласиться на него ответить. Для этого он должен отдать соответствующие HTTP заголовки.

Давайте попробуем на практике. Пусть у нас будет два локальных домена: test.loc и targ.loc. Давайте попробуем отправить AJAX запрос со первого сайта на второй.

Пусть на сайте targ.loc есть страница ajax.php, отдающая какой-то текст:

<?php echo 'text'; ?>

Отправим AJAX запрос с сайта test.loc на сайт targ.loc:

let response = await fetch('http://targ.loc/ajax.php'); let text = await response.text(); console.log(text);

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

Чтобы запрос выполнился, сайт targ.loc должен отдать специальные HTTP заголовки. Давайте их укажем - и запрос начнет проходить:

<?php header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Headers: *'); echo 'text'; ?>

Отправьте в AJAX запросе куки с одного сайта на другой. Для этого укажите соответствующее значение настройки credentials.