Такая проблема: Я написал userscript для сайта. В нём мне необходимо получить из другого сайта содержимое файла "https://сайт/answ.txt". Но не получается никак это сделать. Вот одна из многочисленных попыток это сделать
var x = new XMLHttpRequest();
x.open("GET", "https://site/answ.txt", true);
x.onload = function (x) {
var x = this.responseText;
alert(x);
}
x.send();
читал эту статью http://learn.javascript.ru/xhr-crossdomain. Но всё равно ничего не получилось
Решение оказалось простым. При отправке запроса на другой домен, в целях обеспечения безопасности, cors (механизм безопасности) блокирует ответ если в нём не содержится заголовок Access-Control-Allow-Origin: * (вместо звезды может находиться наш сайт, с которого отправлялся запрос). Это можно сделать, добавив в файл .htaccess в корне сайта такие строки:
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "GET, POST, PUT, DELETE"
Header always set Access-Control-Allow-Headers: Authorization
Во второй строке указываем разрешённые методы, в первой место * сайт, с которого разрешены запросы.
Продвижение своими сайтами как стратегия роста и независимости