V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yantianqi
V2EX  ›  程序员

跨域请求如何携带 cookie

  •  
  •   yantianqi · Jan 19, 2018 · 6691 views
    This topic created in 3032 days ago, the information mentioned may be changed or developed.

    用的 vue,axios,前后台分离.
    跨域过程请求如何携带 cookie
    后台设置 session 的时候要把 cookie 存到 Cookies 中是吗?
    还是怎么设置
    axios 已经设置了 withCredentials = true

    5 replies    2018-01-19 17:18:18 +08:00
    dilu
        1
    dilu  
       Jan 19, 2018
    一个是用 jsonp 一个是修改 heade 请求 增加个什么东西来着
    还有一个解决办法 使用 nginx 转发 例如将前端的 3000 转发到 80 端口 后端的端口转发到 80 下面的 /api 路径 然后你的前端直接请求 /api 路径即可
    sunzongzheng
        2
    sunzongzheng  
       Jan 19, 2018 via Android
    qiuyk
        3
    qiuyk  
       Jan 19, 2018
    后端创建 session 一般一些关键信息放在 Cookies 里,通过响应的 Set-Cookie 头部中,浏览器会自动保存的。不过一般会设置 httpOnly,js 拿不到的。

    同时后端响应需要设置 Access-Control 那四个字段,Origin 不能为*,Credentials 为 true,Headers 要有 Cookie。

    对于非 GET 和 POST 请求,浏览器一般会先发一个 OPTION 请求,后端需要响应 200,浏览器才会发送真正的请求。
    jackroyal
        4
    jackroyal  
       Jan 19, 2018
    前端和后端都需要设置 Credentials, 后端如果是 PHP 的话是设置 header("Access-Control-Allow-Credentials: true");
    sudden
        5
    sudden  
       Jan 19, 2018
    header 中有几个字段要设置,允许指定源
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3044 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 14:01 · PVG 22:01 · LAX 07:01 · JFK 10:01
    ♥ Do have faith in what you're doing.