Я пытаюсь использовать ajax для доступа к некоторым данным на моем веб-сайте из сценария, который я хочу запускать где угодно.Ajax-код из моего скрипта выглядит примерно так
var ajax = new XMLHttpRequest();
ajax.open('GET', 'http://mywebsite.com/page?i=2&json', true);
ajax.onreadystatechange = function() {
if (ajax.status == 200) {
console.log(JSON.parse(ajax.responseText));
}
else
console.log('Could not connect.');
}
ajax.send();
Но при его запуске выдается ошибка
XMLHttpRequest не может загрузить http://mywebsite.com/page?i=2&json. Origin http://anotherwebsite.com не разрешен Access-Control-Allow-Origin.
В сценарии на моем веб-сайте у меня есть следующие строки внутри страницы:
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET');
Но явсе равно получаю такую же ошибку.Я хочу, чтобы эта страница на моем веб-сайте была доступна с любой другой страницы в Интернете через ajax, поскольку мой сценарий является расширением, которое можно использовать на любом веб-сайте.
РЕДАКТИРОВАТЬ: Хорошо, яЭто сработало, если я установил для атрибута withCredentials объекта ajax значение true и на моем сервере отправил обратно заголовок Access-Control-Allow-Credentials, равный true.Затем со своим сценарием я также передал домен, чтобы его можно было вернуть в Access-Control-Allow-Origin на моем серверном сценарии.Подстановочный знак * не работал.Пока это проверено только в Chrome.