O cookie definido não foi detectado

Mr.Smithyyy:

Estou tendo um problema ao tentar recuperar um cookie se ele estiver definido e se não quiser atualizá-lo, em seguida, recuperá-lo.

Para começar, tenho uma função que define um cookie:

func IndexHandler(w http.ResponseWriter, r *http.Request) {
    ...
    ck := http.Cookie{
        Name: "id",
        Value: 5,
        MaxAge: 60,
    }
}

Então, em outra função, eu verifico se esse cookie existe e se ele (lança um erro), eu o recrio

func CheckUpdateCookie(w http.ResponseWriter, r *http.Request) {
    val, err := r.Cookie("id")
    if err != nil {
        ck := http.Cookie{
            Name: "id",
            Value: 5,
            MaxAge: 60,
        }

        http.SetCookie(w, &ck)
        CheckUpdateCookie(w, r)
    }
}

Isso faz com que ele execute um loop infinito e não reconheça que o cookie foi definido novamente, se eu imprimir o erro, recebo http: named cookie not presentmesmo depois de definir o cookie no corpo da função.

Top Muffin:

A chamada para r.Cookie("id")lê um cabeçalho "Cookie" na solicitação.

A chamada para http.SetCookie(w, &ck)adiciona um cabeçalho "Set-Cookie" na resposta. A chamada não modifica a solicitação.

Em vez de chamar a função recursivamente para obter o cookie (o que não funciona pelos motivos mencionados acima), basta usar o cookie que você tem em mãos:

func CheckUpdateCookie(w http.ResponseWriter, r *http.Request) {
    val, err := r.Cookie("id")
    if err != nil {
        val := &http.Cookie{
            Name: "id",
            Value: 5,
            MaxAge: 60,
        }
        http.SetCookie(w, val)
    }
    // val is now set to the cookie.
}

É normal definir o caminho como "/" para que o cookie esteja disponível em todos os caminhos:

        val := &http.Cookie{
            Name: "id",
            Value: 5,
            MaxAge: 60,
            Path: "/",
        }

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

$ .getJSON erro de referência não detectado $ não foi definido

XmlJavaTypeAdapter não foi detectado

searchBarSearchButtonClicked não foi detectado

Erro não detectado: o elemento ref foi especificado como string (editor), mas nenhum proprietário foi definido

O atributo de cookie SameSite None não foi definido no Azure Web App

O cookie CSRF proibido do framework REST do Django não foi definido

Cookie CSRF não definido

Cookie CSRF não definido

o nome 'ImageDataBunch' não foi definido

Não detectado ReferenceError: i não está definido

Não detectado ReferenceError: Firebase não está definido

Não detectado ReferenceError: grecaptcha não está definido

Não detectado ReferenceError: React não está definido

O cookie Hapijs não está definido

o erro 'propTypes' não foi definido e o erro 'defaultProps' não foi definido

No SpriteKit SKPhysicsContactDelegate, o contato não foi detectado

O Auxiliar de Token do Vault não foi detectado?

ReferenceError: "alert" não foi definido

GOPATH não foi definido corretamente

python namerror name não foi definido

python namerror name não foi definido

NameError: o nome 'Não' não foi definido

JQuery retornando erro não detectado: cordova já definido

Um cookie associado a um recurso cross-site foi definido sem o atributo `SameSite`

Fix Not Working: Um cookie associado a um recurso cross-site foi definido sem o atributo `SameSite`

o nome 'modelo_classificação' não foi definido

Cookie gtag.js não definido

Cookie do Django CSRF não definido

Aviso: um erro não tratado foi detectado no erro submitForm ():