Я использую vue для клиентской части. И почему-то авторизация не работает с методом Get в axios. Я попытался использовать POSTMAN, и он работает так, как должен. Есть ли шанс, что я что-то пропустил?
getCurrentPeriode() {
return new Promise((resolve, reject) => {
axios.get(TABLE_NAME,{params: {"X-API-KEY": API_KEY, command:"getCurrent"}}, {
headers:{
'Authorization': `Basic ${token}`
}
})
.then((response) => {
resolve(response.data[0])
}) .catch(err => {
reject(err.response.data)
})
})
}
Токен:
const token = Buffer.from(`${username}:${password}`, 'utf8').toString('base64')
Я получаю эту ошибку: Uncaught (в обещании) {статус: ложь, ошибка: "Неавторизованный"}
В почтальоне (это сработало):
Я пробовал использовать метод post в axios, и он работает. Да, я установил CORS. Да, я разрешил метод Get на своей стороне сервера (потому что он работает в почтальоне)
Метод Post работает как обычно, вот код:
postNewPeriode(date) {
return new Promise((resolve, reject) => {
const data = new FormData()
data.append("dateStart", date.dateStart)
data.append("dateEnd", date.dateEnd)
data.append("X-API-KEY",API_KEY)
axios.post(TABLE_NAME,data, {
headers:{
"Content-Type": "application/x-www-form-urlencoded",
"Authorization": `Basic ${token}`
}
})
.then((response) => {
resolve(response)
}) .catch(err => {
reject(err.response.data)
})
})
},
Я что-то упустил в своих аксиомах или мне следует использовать другой подход? Спасибо за ответ
@ Анатолий, так что проблема в порядке параметров для получения, ответ BogdanC мне поможет. кстати в почтальоне я не ставил шапку в посте, для авторизации поставил на ауте и все заработало :)
Для Axios GET заголовки должны быть вторым аргументом, а для PUT и POST тело — вторым, а заголовки — третьим, как вы сделали. Попробуйте использовать заголовки в качестве второго аргумента GET.
Это должно работать:
axios.get( TABLE_NAME,
{
headers:{'Authorization': `Basic ${token}`},
params: {"X-API-KEY": API_KEY, command:"getCurrent"}
}
)
СПАСИБО ЭТО РАБОТАЛО :D теперь я могу спать спокойно.
Можете ли вы показать другие заголовки, которые вы установили в Postman?