Response中set-cookie里的值不能写入浏览器coo

2019-12-31  本文已影响0人  紫荆秋雪_文

一、问题

登录成功后后端把token保存到cookie中,在浏览器的Response中set-cookie里可以看到值,但是浏览器的Application中Cookies中没有想要保存的token


set-cookie.png
Cookies.png

第一种情况(我的不是这种情况)

由于Request URL请求域名(xxx.gootschool.com)和Response Headers中Set-Cookie中的Domain(gootschool.com)不匹配造成的

  server {
    listen       80;
    server_name  api.gootschool.com;
    client_max_body_size 1024M;

    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host; # 转发时,携带本身的host头信息,而不是127.0.0.1

    # 上传路径的映射
    location /api/upload {
         rewrite "^/(.*)$" /zuul/$1;
    }

    location / {
         proxy_pass http://192.168.1.101:10010;
         proxy_connect_timeout 600;
         proxy_read_timeout 600;
    }
  }
zuul:
  prefix: /api # 添加路由前缀
  retryable: true
  add-host-header: true # 携带请求本身的host头信息
  sensitive-headers: # 禁止使用的头信息,设置为null,否则set-cookie无效

第二种情况

1-有跨域请求时cookie生效的条件

import axios from 'axios'
// 创建axios实例
const service = axios.create({
  baseURL: 'http://api.gootschool.com/api', // api的base_url
  withCredentials: true, // 解决服务器设置token到cookies中,浏览器Application的cookies中没有存入token
  timeout: 20000 // 请求超时时间
})
export default service
上一篇 下一篇

猜你喜欢

热点阅读