@VadimRublev
Go, front-end (ванильный).

Почему Go-сервер считывает куки через раз (дубль)?

Ещё раз спрошу...
var ck http.Cookie

func main() {
    http.Handle("/", http.FileServer(http.Dir(Dir)))

    // В роуте читаем куки
    http.HandleFunc("/contacts", func(w http.ResponseWriter, r *http.Request) {
        _, err := r.Cookie("sessID")
        if err != nil {
            log.Println("Не считывается куки _sessID_ (по маршруту /contacts)")
        } else {
            var ck_ValueCont = ck.Value	        
            log.Println("Value куки _sessID_ по маршруту /contacts:", ck_ValueCont)
        }
        return
    })

    // В роуте авторизации создаём куки
    http.HandleFunc("/login", func(w http.ResponseWriter, r *http.Request) {
        ck = http.Cookie {
            Name: "sessID",
            Value: "token",
            Path: "localhost",
        }
        http.SetCookie(w, &ck)
        // Тут же читаем его - тест-индикатор о том, что куки создан.
        _, err := r.Cookie("sessID")
        if err != nil {
            log.Println("Не считывается куки _sessID_ (по маршруту /login)")
        } else {
            ck_ValueLogin = ck.Value
            log.Println("Value куки _sessID_ по маршруту /login:", ck_ValueLogin)
        }
        return
    })

log.Fatal(serv.ListenAndServeTLS(TLScert, TLSkey))
}

Почему иногда всё нормально - записывается и считывается; иногда записывается (тестом выводится), но не считывается (роутом /contacts); иногда и не записывается даже (тест - ошибка); и в разных браузерах по-разному? Страницы обновляю Ctrl+F5.
  • Вопрос задан
  • 123 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы