Estoy intentando hacer una solicitud de obtención de API utilizando el sistema XMLHttpRequest integrado de JS. No estoy seguro de por qué esta función no funciona.
function updateStats(username){ const request = new XMLHttpRequest; var url = "https://pitpanda.rocks/api/players/" + username; request.open("GET", url); request.send(); request.onload = (e) => { return request.response; } }Mi código se está ejecutando en CodePen en este momento https://codepen.io/casperqf/pen/NWXGeqa
Recomiendo usar fetch . Le permite establecer el method y algunos otros valores.
Se puede hacer con fetch y no con XHR: puede usar la API con los objetos de solicitud y respuesta. Puede realizar solicitudes no-cors y obtener una respuesta de un servidor que no implementa CORS. No puede acceder al cuerpo de la respuesta directamente desde JavaScript.
async function postData(url = '', data = {}) { // Default options are marked with * const response = await fetch(url, { method: 'POST', // *GET, POST, PUT, DELETE, etc. mode: 'cors', // no-cors, *cors, same-origin cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached credentials: 'same-origin', // include, *same-origin, omit headers: { 'Content-Type': 'application/json' // 'Content-Type': 'application/x-www-form-urlencoded', }, redirect: 'follow', // manual, *follow, error referrerPolicy: 'no-referrer', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url body: JSON.stringify(data) // body data type must match "Content-Type" header }); return response.json(); // parses JSON response into native JavaScript objects } function updateStats(username, stats){ postData('https://pitpanda.rocks/api/players/' + username, { stats: stats }) .then(data => { console.log(data); // JSON data parsed by `data.json()` call }); } updateStats('otik', 123);