Problema de Steam API Access-Control-Allow-Origin

Un poco nuevo para la programación web y un poco confundido sobre esto. Tengo un servidor web básico express node.js que sirve un sitio web. Quiero pasar un gameid a una función y hacer que obtenga información de logros de steam usando su API web que debería ser compatible con la siguiente llamada REST API:

https://developer.valvesoftware.com/wiki/Steam_Web_API#GetGlobalAchievementPercentagesForApp_.28v0002.29

Tengo un archivo de script en ejecución. Estoy tratando de hacer una solicitud en un archivo del lado del cliente como tal.

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);
}

Obtuve el siguiente error

XMLHttpRequest no se puede cargarhttp://api.steampowered.com/ISteamUserStats/GetGlobalAchievementPercentagesForApp/v0002/?gameid=440&format=json. No hay encabezado 'Access-Control-Allow-Origin' presente en el recurso solicitado. Origen 'http: // localhost: 3000'por lo tanto no se permite el acceso.

He leído un poco sobre el error, pero parece requerir cambios en el código del lado del servidor o algo así. Aunque todo el código del lado del servidor hizo algo como:

// 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();
});

El uso de Open Weather API, que es la única otra API REST de terceros con la que he trabajado, estaría bien, así que no estoy seguro de por qué la API de Steam no funciona correctamente. Usando Postman, las cadenas de consulta que envío están bien, pero hay algo mal con los valores cuando lo hago en mi javascript del lado del cliente ... pero no con Open Weather API ... No estoy seguro de por qué funciona para uno Pero no el otro. Cualquier ayuda sería muy apreciada, he revisado algunos hilos similares, pero creo que mi novato me está haciendo difícil entender dónde me estoy equivocando y dónde se debe hacer la solución exactamente.