Аутентификация API 401 завершилась неудачно с использованием метода POST - PullRequest
0 голосов
/ 31 января 2020

Я реализую API, основанный на методе POST. Теперь я попробовал метод ax ios, а также метод извлечения (обещания), но у меня постоянно появляется эта ошибка «401 Authentication Failed».

  • Для тестирования я определил значения данных как отправляется в this.state в качестве значений по умолчанию.
  • apiKey и userId определяются как var вне React.Component.
  • Вместо использования встроенной функции btoa , Я использую каталог из npm, который импортирован сверху.

Вот код компонента React: -

constructor(props) {
    super(props);

    this.state = {
      day: 1,
      month: 2,
      year: 2019,
      hours: 12,
      minutes: 59,
      tzone: 5.5,
      lat: 19.22,
      lon: 25.2
    };
  }

  componentDidMount() {

      const options = {
      headers: {
        "Authorization": "Basic" + btoa(userId+":"+apiKey),
        "Content-Type":'application/json'
      }
    };

      const url = `https://json.astrologyapi.com/v1/current_vdasha`
      const data = this.state

      fetch(url, { method: 'POST', 
        body: JSON.stringify(data), 
        headers: options })
        .then(res => res.json())
        .catch(error => console.error('error ---', error.message))
        .then(response => console.log('Success:', response));
  }

Любая помощь приветствуется. Спасибо.

Ответы [ 2 ]

1 голос
/ 31 января 2020

В части заголовка запроса попробуйте добавить пробел после "Basi c", который должен выглядеть следующим образом: '' '

const options = {
headers: {
    "Authorization": "Basic " + btoa(userId+":"+apiKey),
    "Content-Type":'application/json'
  }
};

' '' Поскольку заголовок аутентификации сначала ожидает тип авторизация с последующим пробелом и затем ключом API

0 голосов
/ 31 января 2020

Когда вы передаете заголовки в функцию выборки, вы передаете их внутри другого объекта.

В функции выборки попробуйте изменить headers: options на headers: options.headers.

...