В этой заметке опишу частный случай, когда мне пришлось столкнуться с ошибкой «No ‘Access-Control-Allow-Origin’ header is present on the requested resource».
Эта ошибка появлялась в консоли браузера при попытке отправить сообщения из форм, расположенных на лендинге, через скрипт, расположенный на другом домене, методом ajax.
Если не использовать ajax, то проблем с отправкой данных из форм не возникает, так как весь сценарий проигрывается на сервере (или на двух серверах). Но когда пытаемся задействовать ajax, то в сценарий подключается браузер. А в браузерах в целях безопасности блокируется обмен данными методом ajax между двумя доменами. Если, конечно, со стороны, к которой обращаемся с помощью ajax, нет разрешения для такого обращения.
В моем случае доступ к скрипту на другом домене имелся, поэтому решение проблемы оказалось очень простым.
В файл скрипта-обработчика форм была добавлена одна-единственная строка:
header('Access-Control-Allow-Origin: *');
Этот заголовок нужно добавить в самом начале скрипта. После того, как он был добавлен, данные из форм начали беспрепятственно отправляться аяксом через скрипт на другом домене.