Много мануалов на эту тему, но что-то пока ни один не дал нужного результата.
Код JS:
var Request = new XMLHttpRequest();
Request.open("POST", 'http://какой-то-хост.ру/', true);
Request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
Request.send("Data="+Data);
В index.php сервера:
<?php
header('Access-Control-Allow-Origin: *');
if($_SERVER['REQUEST_METHOD'] == 'POST'){
//обработка запроса
//сервер должен вернуть либо пустую строку, либо строку с данными, но пока он это делает только в рамках одного хоста с клиентами, посылающими запрос
}
В консоли текст:
Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на http://*********.ru/. (Причина: отсутствует заголовок CORS «Access-Control-Allow-Origin»).
Подскажите пожалуйста, чего не хватает, что я не так написал? Может не в том месте этот header на сервере указал...?
Всем спасибо за проявленный интерес. Причина такого поведения браузера оказалась простой, но в то же время мне не понятной...
Сервер на линуксе не понимал строку header('Access-Control-Allow-Origin: *'); - ему надо было "сказать" header("Access-Control-Allow-Origin: *"); (с двойными кавычками). Уж не знаю в линуксе ли дело, или ещё в чём-то, но оно работает - может кому-то ещё поможет эта информация.
Продвижение своими сайтами как стратегия роста и независимости