Steam API Access-Control-Allow-Origin Issue
Немного новичок в веб-программировании и немного запутался в этом. У меня есть базовый экспресс-узел node.js, обслуживающий веб-сайт. Я хочу передать gameid функции и получить от него информацию о достижениях из steam, используя их веб-API, которые должны поддерживаться с помощью следующего вызова REST API:
У меня есть файл сценария, который я получаю. Я пытаюсь сделать запрос в файле на стороне клиента, например.
function GetSteamGameAchievements(appid)
{
var request = new XMLHttpRequest();
request.addEventListener('load',function(){
console.log(JSON.stringify(this.responseText));
});
request.open("GET","http://api.steampowered.com/ISteamUserStats/GetGlobalAchievementPercentagesForApp/v0002/?gameid="+ appid + "&format=json",true);
request.send(null);
}
Я получаю следующую ошибку
XMLHttpRequest не может загрузитьhttp://api.steampowered.com/ISteamUserStats/GetGlobalAchievementPercentagesForApp/v0002/?gameid=440&format=json, В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». ПроисхождениеHTTP: // локальный: 3000Поэтому не допускается доступ.
Я немного читал об ошибке, но, похоже, она требует изменения кода на стороне сервера или чего-то еще. Хотя весь код на стороне сервера сделал что-то вроде:
// Add headers
app.use(function (req, res, next) {
// Website you wish to allow to connect
res.setHeader('Access-Control-Allow-Origin', 'http://api.steampowered.com');
// Request methods you wish to allow
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
// Request headers you wish to allow
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
// Set to true if you need the website to include cookies in the requests sent
// to the API (e.g. in case you use sessions)
res.setHeader('Access-Control-Allow-Credentials', true);
// Pass to next layer of middleware
next();
});
Использование Open Weather API, единственного стороннего REST API, с которым я работал, например, с оригинальным кодом, было бы хорошо, поэтому я не уверен, почему API Steam работает неправильно. Используя Postman, строки запросов, которые я отправляю, в порядке, но что-то не так с ценными бумагами, когда я делаю это в своем клиентском javascript ... но не в Open Weather API ... я не уверен, почему он работает для одного но не другой. Любая помощь будет принята с благодарностью, я перебрал некоторые похожие темы, но я думаю, что из-за моей нелюбовь мне трудно понять, где я ошибаюсь, и где необходимо сделать исправление.