No ‘Access-Control-Allow-Origin’ header is present on the requested resource: решение проблемы

В этой заметке опишу частный случай, когда мне пришлось столкнуться с ошибкой «No ‘Access-Control-Allow-Origin’ header is present on the requested resource».

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

Если не использовать ajax, то проблем с отправкой данных из форм не возникает, так как весь сценарий проигрывается на сервере (или на двух серверах). Но когда пытаемся задействовать ajax, то в сценарий подключается браузер. А в браузерах в целях безопасности блокируется обмен данными методом ajax между двумя доменами. Если, конечно, со стороны, к которой обращаемся с помощью ajax, нет разрешения для такого обращения.

В моем случае доступ к скрипту на другом домене имелся, поэтому решение проблемы оказалось очень простым.

В файл скрипта-обработчика форм была добавлена одна-единственная строка:

header('Access-Control-Allow-Origin: *');

Этот заголовок нужно добавить в самом начале скрипта. После того, как он был добавлен, данные из форм начали беспрепятственно отправляться аяксом через скрипт на другом домене.

Оцените статью