ВАЖНО! Я новичек, только что начинаю изучать асинхронные запросы:)
Моя ситуация:
Пытаюсь парсануть цену определенного предмета на ТП Стима, если ввести в адресную строку браузера ссылку на JSON-файл данного предмета(из консоли полученную), то я успешно получаю этот файл, но если я попытаюсь своей функцией отправить AJAX запрос, то ничего не выходит, в консоли вывдится ошибка:
"
Failed to load https://steamcommunity.com/market/priceoverview/?a...: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access."
Как я понял, серверу не нравится HTTP заголовок, который имеет "не то" значение, причем походу браузер не разрешает такой заголовок объявлять(или нет?)
Вообще ничего не понимаю, ведь расширение браузера успешно отправляет этот запрос, но почему я не могу? Для меня эта тема пока довольно-таки туманна, будьте солидарны:)
Вот, моя попытка вылепить запрос:
function FUN_AjaxGet(){
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://steamcommunity.com/market/priceoverview/?appid=753&country=RU¤cy=5&market_hash_name=425580-Chapter%202%20(Trading%20Card)',true);
xhr.setRequestHeader('Accept','*/*');
//xhr.setRequestHeader('Access-Control-Allow-Origin','1'); //тот самый заголовок, который нужен серверу, пытался наугад поставить значение, но, походу, это объявление заголовка успешно проигнорировали
xhr.setRequestHeader('Accept-Language','ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7');
xhr.setRequestHeader('X-Requested-With','XMLHttpRequest');
//Заголовки я копировал из консоли (совершенных запросов), некоторые были не валидны, их удалил.
xhr.send();
if(xhr.status!=200){alert(xhr.status+' : '+xhr.readyState+' [ Error ]');} // обработать ошибку;
else {alert(xhr.responseXML+' [ Zaebis ]');} // вывести результат;
};
Если не сложно, то объясните вкратце, как нужно правильно строить запрос в функции, какие методы обязательны, и что за что отвечает