erro autenticação consumo api javascript fetch

27/10/2023

0

Bom dia prezados


Fiz um teste no postman para consumir uma api e deu tudo certo
no entanto jogando para o fetch do javascript da erro de autorização 401

o código que estou usando é esse ficarei muito grato se alguem puder me dar uma luz

ar myHeaders = new Headers();
myHeaders.append("Authorization", "Basic ZXhjZWxlbmNpYXdlYi10aGlhZ286Zm1qQ3gxVTVoSGlMTEVERzBLVk82cWRKdWVTTmUxeDU=");

var raw = "";

var requestOptions = {
method: ''''GET'''',
headers: myHeaders,
mode: ''''no-cors'''',
//body: raw,
redirect: ''''follow''''
};

fetch("https://api.sienge.com.br/excelenciaweb/public/api/v1/bills/?startDate=2018-01-01&endDate=2023-12-31&limit=400&offset=200", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log(''''error'''', error));
Thiago

Thiago

Responder

Posts

08/11/2023

Diego Marinho

Pode ser várias coisas, algum erro de cors, por exemplo... mas talvez seja um erro de promisse. Tenta jogar esse fetch pra dentro de uma função assíncrona e dentro da função, você coloca um await antes dele.... mais ou menos assim :

    async function  MinhaApi (api, op){

        const  chamando =  fetch(api , op).then(o=> o.json())
        console.log (chamando)
        return chamando
    }

     // Aqui você chama a função :
    MinhaApi ("https://api.sienge.com.br/excelenciaweb/public/api/v1/bills/?startDate=2018-01-01&endDate=2023-12-31&limit=400&offset=200", requestOptions )

Responder

08/11/2023

Diego Marinho

Só esqueci do principal -> coloca o await antes do fetch.
E substitui o json() que eu coloquei por text(), pq pelo oq vc pôs lá em cima, vc quer um text.


const  chamando =  await fetch(api , op).then(o=> o.text())




Responder

15/11/2023

Aline Ribeiro

Bom dia prezados


Fiz um teste no postman para consumir uma api e deu tudo certo
no entanto jogando para o fetch do javascript da erro de autorização 401

o código que estou usando é esse ficarei muito grato se alguem puder me dar uma luz

ar myHeaders = new Headers();
myHeaders.append("Authorization", "Basic ZXhjZWxlbmNpYXdlYi10aGlhZ286Zm1qQ3gxVTVoSGlMTEVERzBLVk82cWRKdWVTTmUxeDU=");

var raw = "";

var requestOptions = {
method: ''''GET'''',
headers: myHeaders,
mode: ''''no-cors'''',
//body: raw,
redirect: ''''follow''''
};

fetch("https://api.sienge.com.br/excelenciaweb/public/api/v1/bills/?startDate=2018-01-01&endDate=2023-12-31&limit=400&offset=200", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log(''''error'''', error));
Responder

15/11/2023

Aline Ribeiro

Opa tudo bem?
O code 401 é não autorizado, significa que esta com problema de autenticação na aplicação.
No trecho abaixo acredito que seja Bearer + token em vez de Basic. Acredito que o Basic espera um login e um password. Outra coisa é esse token expira em quanto tempo?
myHeaders.append("Authorization", "Basic ZXhjZWxlbmNpYXdlYi10aGlhZ286Zm1qQ3gxVTVoSGlMTEVERzBLVk82cWRKdWVTTmUxeDU=");

Fiz um teste usando o Bearer com esse token e deu 401 tbm então tem que ver essa questão do token e o modo de autenticação.
Responder

21/11/2023

Diego Marinho

Mas de onde você tá consumindo esses dados ?
Precisa de algum login e senha ?
No postman vc passava algum login de usuário ?
Se sim. No javascript, como vc tá passando esses dados da login e senha ?
Tem algum link da documentação dessa api ?

Responder

23/11/2023

Diego Marinho

Olá Aline. Tinha bugado seu post, e não tinha aparecido um pedaço dele pra mim. Agora que eu vi que vc tá usando a mesma api do Tiago...
Esse primeiro post, meu, com as requisições assíncronas, pra mim funcionou.
Porém, agora fui testar, deu ruim... tá dando erro 401.
Provavelmente essa plataforma tenha algum tipo de configuração de conta que interfere na sua requisição.
Eu dei uma olhada no site, mas precisa fazer uma conta pra ter mais informação.
Mas é isso. Se você tiver uma conta lá, dá uma procurada pra vê se tem alguma configuração de conta bloqueando sua requisição.
Vai que é isso.
Boa sorte.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar