Заголовок "Access-Control-Allow-Origin" отсутствует в запрошенном ресурсе инвентаризации Steam

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

Итак, теперь к проблеме. Как вы видите в заголовке каждый раз, когда я запускаю свой код, я получаю Нет заголовка "Access-Control-Allow-Origin" на запрошенном ресурсе в качестве ответа. Так что, возможно, кто-нибудь может помочь мне найти ошибку.

Код:

function GetInv(){
  var json_obj = JSON.parse(Get('http://steamcommunity.com/inventory/76561198122209518/730/2?l=english&count=5000'));
  var assets = json_obj.assets;
  console.log(json_obj);
}

function Get(yourUrl){
  var Httpreq = new XMLHttpRequest(); // a new request
  Httpreq.open("GET",yourUrl,false);
  Httpreq.send(null);
  return Httpreq.responseText;
}

РЕДАКТИРОВАТЬ

Спасибо за ответы. Так что я погуглил инструменты, не совместимые с CORS, и нашел это: http://www.test-cors.org/ Это дало мне следующий фрагмент кода:

var createCORSRequest = function(method, url) {
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr) {
// Most browsers.
xhr.open(method, url, true);
} else if (typeof XDomainRequest != "undefined") {
// IE8 & IE9
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
// CORS not supported.
xhr = null;
}
return xhr;
};

var url = 'http://api.steampowered.com/ISteamEconomy/GetAssetClassInfo/v0001/?key=XXXXXXXXXXXXX&appid=730&class_count=1&classid0=1131459905';
var method = 'GET';
var xhr = createCORSRequest(method, url);

xhr.onload = function() {
console.log("super");
};

xhr.onerror = function() {
console.log("failed");
};

xhr.send();

Я пробовал это, но все еще та же ошибка. Так я иду правильным путем или я тупой, чтобы найти ответ?

1 ответ

Не так давно существовал способ мошенничества с людьми в Интернете, где веб-страница притворялась пользователем, отправляющим запрос на другой сервер, позволяя им скомпрометировать учетные записи пользователя. Google XSS или же Cross Site Request Forgery для дополнительной информации.


Из-за вышеуказанных проблем безопасности в современных браузерах вы не можете сделать запрос к странице другого источника (домена), если они явно не разрешают это с помощью Access-Control-Allow-Origin заголовок, который по домену. Вы ничего не можете сделать, чтобы решить эту проблему, но я бы порекомендовал вам использовать API Steam, чтобы фактически получить данные из пара

Другие вопросы по тегам