npm начало получает 401 и приложение узла. js получает 200 ответ - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть проект React, который я запускаю при запуске npm, и этот код получает ошибку 401 из второй выборки (первая в порядке). Он работает нормально, возвращая 200 только с узлом, как в "приложении узла. js".

Так что мне нужно сделать, чтобы мой проект React получил ответ 200? Почему существует разница между npm и узлом для этого ответа на запрос?

const clientID = <ClientID>
const clientSecret = <ClientSecret>
const encode = Buffer.from(`${clientID}:${clientSecret}`, 'utf8').toString('base64')

const requestOptions = {
    method: 'POST',
    headers: {  'Content-Type': 'application/x-www-form-urlencoded',
                'Authorization': `Basic ${encode}`,
            },
};

fetch("https://auth-nato.auth.us-east-1.amazoncognito.com/oauth2/token?grant_type=client_credentials", requestOptions)
.then(response => { return response.json() })
.then(data => { 
  const requestOptions2 = {
    method: 'POST',
    mode: 'no-cors',
    headers: {  'Content-Type': 'application/json',
                'Authorization': `Bearer ${data.access_token}`
            },
    body: '{"username":"Ana", "password":"test123","user_id":"ana@email.com"}'
  };
  fetch('https://j1r07lanr6.execute-api.sa-east-1.amazonaws.com/v1/register', requestOptions2)
  .then(response => {console.log(response)});
})

Ответы [ 2 ]

0 голосов
/ 06 апреля 2020

Единственным решением было отключение chrome веб-безопасности и удаление "mode: no-cors". Я попытался добавить "Access-Control-Allow-Origin": "http://localhost: 3000 " в заголовки, но не работает.

0 голосов
/ 06 апреля 2020

Буфер - не представлен в браузере javascript.

Вместо

const encode = Buffer.from(`${clientID}:${clientSecret}`, 'utf8').toString('base64')

используйте только

const encode = btoa(`${clientID}:${clientSecret}`);

Читать подробнее о кодировании base64 на MDN .

...