кросс-доменный запрос cредствами js

Господа, никак не могу понять в чем проблема. На странице по нажатию выполняется js код который выуживает ссылку со страницы, которая ведет на файл на стороннем домене, после чего(в теории) делается XMLHttpRequest запрос, который получает данный файл в переменную как строку.

Но проблема заключается в том, что после получения ссылки и попытки получить ее содержимое выбивает ошибку

Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на (тут ссылка на файл). (Причина: отсутствует заголовок CORS «Access-Control-Allow-Origin»).

Пытаюсь получить содержимое файла через

var XHR = ("onload" in new XMLHttpRequest()) ? XMLHttpRequest : XDomainRequest;

var xhr = new XHR();
xhr.open('GET', urlindef, true);
xhr.withCredentials = true;
xhr.onload = function() {
  alert( this.responseText );
}
xhr.onerror = function() {
  alert( 'Ошибка ' + this.status );
}
xhr.send();

Где urlindef - ссылка на сам файл который загружается.

Ну и соответственно выбивает ошибку в alert(). При этом если ту же ссылку пробовать открыть в браузере этом же, в новой вкладке - все открывается и дает скачать мгновенно. Как это можно исправить и корректно составить запрос на получение данных? Сразу оговорюсь - у меня нет доступа к тому серверу и я не могу прописать там в header или htaccess параметры Access-Control-Allow-Origin: * .

Просто я не могу понять почему через браузер руками все ок, а по сути отправляя с этой же страницы запрос у меня выбивает ошибку, хотя по идее куки все подключаю как надо.


Ответы (1 шт):

Автор решения: Qwertiy

Сразу оговорюсь - у меня нет доступа к тому серверу и я не могу прописать там в header или htaccess параметры Access-Control-Allow-Origin: * .

Значит сделать то, что ты хочешь (запрос с credential'ами), ты тоже не можешь. Всё.

→ Ссылка