Axios Get Authorization не работает в Vue, но работает на POSTMAN (метод POST на vue работал)

Я использую 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)
            })
    })
},

Я что-то упустил в своих аксиомах или мне следует использовать другой подход? Спасибо за ответ

Можете ли вы показать другие заголовки, которые вы установили в Postman?

Anatoly 20.12.2020 21:58

@ Анатолий, так что проблема в порядке параметров для получения, ответ BogdanC мне поможет. кстати в почтальоне я не ставил шапку в посте, для авторизации поставил на ауте и все заработало :)

Ananda Vj 21.12.2020 01:22
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание API-ресурса Laravel может быть непростой задачей. Она требует глубокого понимания возможностей Laravel и лучших практик, чтобы обеспечить...
Как создать простое погодное приложение на Python с API OpenWeatherMap
Как создать простое погодное приложение на Python с API OpenWeatherMap
Этот учебник проведет вас через процесс создания простого погодного приложения с помощью Python и OpenWeatherMap API.
Пакеты Java
Пакеты Java
Пакет java - это группа классов, интерфейсов и подпакетов схожего типа. Думайте об этом как о папке в каталоге файлов. Мы используем пакеты, чтобы...
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
В этом руководстве вы узнаете, как использовать API парсинга квитанций за 5 минут с помощью JavaScript. Eden AI предоставляет простой и удобный для...
0
2
260
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Для Axios GET заголовки должны быть вторым аргументом, а для PUT и POST тело — вторым, а заголовки — третьим, как вы сделали. Попробуйте использовать заголовки в качестве второго аргумента GET.

Это должно работать:

axios.get( TABLE_NAME, 
          { 
            headers:{'Authorization': `Basic ${token}`}, 
            params: {"X-API-KEY": API_KEY, command:"getCurrent"}
          }
         )

СПАСИБО ЭТО РАБОТАЛО :D теперь я могу спать спокойно.

Ananda Vj 21.12.2020 01:23

Другие вопросы по теме