Заголовок "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, чтобы фактически получить данные из пара