Jump to content
iron

Fetch

Recommended Posts

iron

Boas.

Estou aqui com um pequeno problema.

Estou a usar o fetch para fazer um pedido http a um localhost, mas assim que faz o pedido dá este erro:

TypeError: Failed to fetch

 

Contudo, ele vai ao servidor com os dados que eu quero.

 

O ponto de entrada é o setAuth

 

const headers = new Headers({
    'Access-Control-Allow-Origin':'*',
    'Content-Type': 'application/json'
})

function option(path, headers, method, body)
{
    let host = 'http://localhost:8080/'
    return new Request(host + path, {
        method: method !== undefined ? method : 'GET',
        mode: 'cors',
        redirect: 'follow',
        headers: headers,
        body: body
    })
}

function setAuth(email, password)
{
    const req = 'users/login'
    let obj = {email: email, password: password}
    const opt = option(req, headers, 'POST', JSON.stringify(obj))
    return getData(opt)
}

function getData(option)
{
    return fetch(option)
        .then((resp) => {
            console.log(resp)
            return resp.json()
        })
        .then((data) => {
            console.log(data)
            return data
        })
}

 

 

Desde já obrigado


Cumprimentos,
iron

Share this post


Link to post
Share on other sites
M6

O erro acontece no Javascript? Quando recebes o pedido HTTP ou antes? Recebes um 200 como resposta ao pedido HTTP?


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
iron

Isto está por fazes :/

O erro é no lado do javascript.


Ora faz o primeiro then or não faz. E nunca vai ao catch. Quando chega ao primeiro then recebo 200 e depois não vai ao segundo nem ao catch.

Mas as vezes assim que executa o fetch, não vai ao then, dá erro mas tenho os dados no servidor. 

 

Estou a teantar fazer um post. 

 

Nos get's, o pedido é executado com sucesso

 

Contudo os pedidos vão sempre ao meu servidor...

 

 

Edited by iron

Cumprimentos,
iron

Share this post


Link to post
Share on other sites
HappyHippyHippo
11 minutes ago, iron said:

Isto está por fazes :/

O erro é no lado do javascript.


Ora faz o primeiro then or não faz. E nunca vai ao catch. Quando chega ao primeiro then recebo 200 e depois não vai ao segundo nem ao catch.

Mas as vezes assim que executa o fetch, não vai ao then, dá erro mas tenho os dados no servidor. 

 

Estou a teantar fazer um post. 

 

Nos get's, o pedido é executado com sucesso

 

Contudo os pedidos vão sempre ao meu servidor...

 

 

relê este post, depois, coloca-te no nosso lugar e tenta perceber o que escreveste (isto para não falar que o código apresentado não tem nenhum catch, e sim dois then)


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
iron

Tens razão @HappyHippyHippo

 

O getData foi alterado e foi colocado um catch:

function getData(option)
{
    return fetch(option)
        .then((resp) => {
            console.log(resp)
            return resp.json()
        })
        .then((data) => {
            console.log(data)
            return data
        })
        .catch(error => console.log(error))
}

 

Agora reformulando o que tinha dito.

 

Ao fazer um POST, deparo-me com o erro TypeError: Failed to fetch, este dá quando é executada a linha return fetch(option).

Quando ele não dá erro, faz o primeiro then e recebo uma resposta 200. Contudo ele não faz mais nada. Nem o segundo then nem o catch.

Mas independentemente de dar erro ou não, eu recebo sempre esse pedido no lado do meu servidor. Recebo o body com os dados que estava a espera.

 

Acho que assim me faço entender melhor.

 

 

 


Cumprimentos,
iron

Share this post


Link to post
Share on other sites
iron

Já resolvi o problema.

 

Faltava isto: event.preventDefault()


Cumprimentos,
iron

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.