M4mkin_pr0ger
@M4mkin_pr0ger
Хачу пырфоманс

Почему сервер не отвечает на мой AJAX запрос?

ВАЖНО! Я новичек, только что начинаю изучать асинхронные запросы:)
Моя ситуация:
Пытаюсь парсануть цену определенного предмета на ТП Стима, если ввести в адресную строку браузера ссылку на 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&currency=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 ]');} // вывести результат;
};


Если не сложно, то объясните вкратце, как нужно правильно строить запрос в функции, какие методы обязательны, и что за что отвечает
  • Вопрос задан
  • 175 просмотров
Пригласить эксперта
Ответы на вопрос 2
M4mkin_pr0ger
@M4mkin_pr0ger Автор вопроса
Хачу пырфоманс
Странно, что тогда никто не заметил простую ошибку: у меня сразу после отправки запроса начинается проверка ответа, которого нет. Надо было подписываться на событие загрузки ответа:xhr.onload(/* обработчик */)
Господи, я ж на это убил тогда несколько дней...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы