Ajax 无法跨域获取 cookie - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
cfort

Ajax 无法跨域获取 cookie

  •  
  •   cfort Sep 6, 2018 5687 views
    This topic created in 2792 days ago, the information mentioned may be changed or developed.

    前端代码如下

    x.withCredentials =true x.open('GET', 'http://www.example.com/xxx'); x.setRequestHeader("lang", "zh"); x.Onload=function(){ console.log(x.responseText); }; x.send(); 

    响应头:

    Access-Control-Allow-Credentials: true Access-Control-Allow-Headers: x-requested-with, Content-Type,Cookie, Accept, multipart/form-data, application/x-www-form-urlencoded, lang, token, os, version, time Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE Access-Control-Allow-Origin: http://192.168.0.128:8020 Cache-Control: no-cache, must-revalidate, no-cache, private Connection: close Content-Type: application/json Date: Thu, 06 Sep 2018 10:27:57 GMT Pragma: no-cache Proxy-Connection: keep-alive Server: nginx/1.13.12 Transfer-Encoding: chunked X-Content-Type-Options: nosniff X-Powered-By: PH/7.2.5 

    请求头:

    lang: zh Origin: http://192.168.0.128:8020 Referer: http://192.168.0.128:8020/test/new_file.html?__hbt=1536228082860 User-Agent: Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Mobile Safari/537.36 

    后端是有 cookie 返回的,直接在浏览器输入接口 url 可以看到 cookie,而且后端也设置了 Access-Control-Allow-Credentials: true,可以在响应头看到,在网山查了很久,找不出是什么地方的问题,求大佬指点!

    14 replies    2018-09-10 19:41:21 +08:00
    Sparetire
        1
    Sparetire  
       Sep 6, 2018 via Android
    httponly ?
    cfort
        2
    cfort  
    OP
       Sep 6, 2018
    @Sparetire 后台返回的 cookie 没有设置这个
    KuroNekoFan
        3
    KuroNekoFan  
       Sep 6, 2018 via iPhone
    我觉得可以先搞搞明白同源策略和 cors 的一些细节
    conn4575
        4
    conn4575  
       Sep 6, 2018 via Android
    看是不是 cookie 得 domain 设错了
    zhengxiaowai
        5
    zhengxiaowai  
       Sep 6, 2018
    cookie 本身就不能跨域。。
    duan602728596
        6
    duan602728596  
       Sep 6, 2018 via iPhone
    能跨域不是很正常的吗?
    lucky2Javascript
        7
    lucky2Javascript  
       Sep 7, 2018
    跨域怎么共享?
    Sparetire
        8
    Sparetire  
       Sep 7, 2018 via Android
    楼上各位 cookie 语境下的域和同源策略语境下跨域的域不是一个概念吧。。同源策略下同域名不同端口就算跨域,cookie 这种情况显然可以共享。。同源策略下子域 xhr 请求就跨域了,cookie 也可以共享,所以难道不是应该看看是否允许子域共享,path 是否正确,是否 httpinly
    Sparetire
        9
    Sparetire  
       Sep 7, 2018 via Android
    @Sparetire 手滑,httponly
    lucky2Javascript
        10
    lucky2Javascript  
       Sep 7, 2018
    @Sparetire a.b.comc.b.com 可以共享吗?
    Sparetire
        11
    Sparetire  
       Sep 7, 2018 via Android
    @leeseeanchiu 不能,我也没说所有情况都能,但是比如 a.com 设置的 cookie, b.a.com 能拿到,但这种情况下对 xhr 请求来说已经算跨域了吧
    w3313003
        12
    w3313003  
       Sep 7, 2018
    前端也要 x.withCredentials = true
    laoona
        13
    laoona  
       Sep 7, 2018
    跨域请求可以携带 cookie (后端接口能收到),但后端接口在浏览器下是种植不了 cookie 的。
    cfort
        14
    cfort  
    OP
       Sep 10, 2018
    感谢各位,开发环境下把接口和项目域名设置一样暂时避开了这个问题~
    About     Help     Advertise     Blog     API     FAQ     Solana     1007 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 61ms UTC 18:59 PVG 02:59 LAX 11:59 JFK 14:59
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86