Перейти веб-разработка: браузер не может установить cookie - PullRequest
0 голосов
/ 20 сентября 2018

Я хочу установить cookie в Go:

func rememberMe(w http.ResponseWriter,username string) {
    expiration := time.Now().AddDate(0,1,0) // cookie will be stored for 1 month
    cookie := http.Cookie{Name: "rememberMe",Value: username,Expires: expiration}
    http.SetCookie(w,&cookie)
    fmt.Println("Cookie has been set.")
}

Ответ был вполне удовлетворительным, и было подано Set-Cookie :

Access-Control-Allow-Headers: Accept, Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization
Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE
Access-Control-Allow-Origin: *
Content-Length: 10
Content-Type: text/plain; charset=utf-8
Date: Thu, 20 Sep 2018 12:48:20 GMT
Set-Cookie: rememberMe=buddy; Expires=Sat, 20 Oct 2018 12:48:19 GMT

Нокогда я использовал инструменты разработчика Chrome для проверки файлов cookie, они отсутствовали.Я запутался в этой проблеме.

1 Ответ

0 голосов
/ 20 сентября 2018

Спасибо за @Peter.Дело в перекрестном происхождении. Мой сервер работает на locolhost: 8088, а клиент работает на localhost: 8080.Таким образом, я сделал некоторую конфигурацию и в задней части и в передней части.Вот код конца:

func SetupResponse(w *http.ResponseWriter, r *http.Request) {
    (*w).Header().Set("Access-Control-Allow-Origin", "http://localhost:8080")
    (*w).Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE")
    (*w).Header().Set("Access-Control-Allow-Headers", "Accept, Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization")
    (*w).Header().Set("Access-Control-Allow-Credentials", "true")
}

Я использую axios в передней части:

this.$axios.create({ withCredentials: true })
.get("http://localhost:8088/api/")
.then((response) => {
//....
}).catch((error) => {
  console.log(error);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...