Как сделать запрос API, используя браузер с токеном? - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь сделать запрос API, используя fetch (браузер). Для выполнения запроса в заголовках требуется токен.

Я могу делать успешные запросы в узле (на стороне сервера). Однако при выполнении запросов в браузере запрос OPTIONS завершается с ошибкой 401.

const order_url = new URL(process.env.API_URL + 'orders/');
const params = { type: 'amazon', status: 'in_queue' };
Object.keys(params).forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    Authorization: 'Token ' + process.env.API_TOKEN,
    'Content-Type': 'application/x-www-form-urlencoded'
};

fetch(order_url, {
  headers
})
  .then(response => response.json())
  .then(result => {
    console.log(result);
  })
  .catch(error => {
    console.error(error)
  })

Я получаю ошибку "NetworkError when attempting to fetch resource." Какая будет правильная конфигурация для работы в браузере?

1 Ответ

0 голосов
/ 21 января 2019

Вы неправильно отправляете заголовки.Попробуйте это.

myHeaders = new Headers({
  'Authorization': 'Token ' + process.env.API_TOKEN,
  'Content-Type': 'application/x-www-form-urlencoded'
});

, а затем

fetch(order_url, {
  headers: myHeaders,
  method: 'GET'
})
...