GET запрос возвращает null
Пытаюсь получить информацию через get запрос, сервер возвращает null.
function whoami() {
const whoAmiURL = 'https://shikimori.one/api/users/whoami'
function sendAuth(method, url, WhoAmiData = null) {
return new Promise((resolve, reject) => {
const xhrwhoami = new XMLHttpRequest()
xhrwhoami.open(method, url)
xhrwhoami.responseType = 'document'
xhrwhoami.onload = () => {
if (xhrwhoami.status >= 400) {
resolve(xhrwhoami.response)
alert('Упс... чет не так пошло, сейчас попробую получить новый токен')
// refresh()
} else {
resolve(xhrwhoami.response)
}
}
xhrwhoami.onerror = () => {
reject(xhrwhoami.response)
}
xhrwhoami.send(JSON.stringify(WhoAmiData))
})
}
var AcToken = localStorage.getItem('auth');
var parseAcToken = JSON.parse(AcToken);
const WhoAmiData = {
"User-Agent": 's’app',
"Authorization": parseAcToken,
}
sendAuth('GET', whoAmiURL, WhoAmiData)
.then(function(data) {
console.log(data);
})
}
Ответы (1 шт):
Автор решения: Виталий Шебаниц
→ Ссылка
Вы отправляете запрос так:
// создаете экземпляр
const xhrwhoami = new XMLHttpRequest()
// иницализируете
xhrwhoami.open(method, url)
// определяете тип ответа
xhrwhoami.responseType = 'document'
// коллбек загрузки
xhrwhoami.onload = () => {
...
}
// коллбек ошибки
xhrwhoami.onerror = () => {
...
}
//отсылаете данные в теле запроса
xhrwhoami.send(JSON.stringify(WhoAmiData))
При чем у Get запроса нету тела. Но если посмотреть на Post, то запрос который вы отослали будет выглядеть примерно так
POST https://shikimori.one/api/users/whoami HTTP/1.1
{
"User-Agent": "s’app",
"Authorization": "Bearer parseAcToken"
}
Проблема в том что нучно вот такой запрос (данные которые вы отсылали в теле - отслать в заголовках)
GET https://shikimori.one/api/users/whoami HTTP/1.1
User-Agent: s’app
Authorization: Bearer parseAcToken
на js:
// создаете экземпляр
const xhrwhoami = new XMLHttpRequest()
// иницализируете
xhrwhoami.open(method, url)
// определяете тип ответа
xhrwhoami.responseType = 'document'
//задаете хедеры
xhrwhoami.setRequestHeader('User-Agent', `s’app`)
xhrwhoami.setRequestHeader('Authorization', `Bearer ${parseAcToken}`)
// коллбек загрузки
xhrwhoami.onload = () => {
...
}
// коллбек ошибки
xhrwhoami.onerror = () => {
...
}
//отсылаете запрос
xhrwhoami.send()