Я пытаюсь сделать запрос на получение API, используя JS, встроенную в систему XMLHttpRequest. Я не уверен, почему эта функция не работает.
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;
}
}
Мой код сейчас работает на CodePen https://codepen.io/casperqf/pen/NWXGeqa
Что в нем "не работает"? Сейчас самое время начать использовать инструменты отладки вашего браузера. Ошибки в консоли есть? Выполняется ли запрос AJAX вообще? Какой ответ сервера? Функтино вообще вызывается? Укажите работоспособный минимальный воспроизводимый пример и конкретно укажите, что не работает должным образом.
new XMLHttpRequest()
- но на самом деле вы должны использовать принести в 2022 году.
Рекомендую использовать fetch
. Позволяет установить method
и некоторые другие значения.
Можно сделать с выборкой, а не с XHR:
Вы можете использовать API с объектами запроса и ответа.
Вы можете выполнять no-cors
запросы, получая ответ от сервера, который не поддерживает CORS. Вы не можете получить доступ к телу ответа непосредственно из 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.info(data); // JSON data parsed by `data.json()` call
});
}
updateStats('otik', 123);
Ответы только на код обычно бесполезны. Пожалуйста, дайте некоторый контекст и поясните, почему это помогает.
request.open("GET", url);
отправляет GET, а не POST.