美文网首页
【转】ionic cookie问题

【转】ionic cookie问题

作者: yahzon | 来源:发表于2018-05-09 15:11 被阅读105次

    https://blog.csdn.net/u010564430/article/details/70772014

    我们如果需要获取服务器返回的cookie,是拿不到的,

    因为ionic自己的域名为http://localhost/8100,而我们自己的域名肯定不是这个。

    我们要读取的其实是自己服务器传来保存在浏览器的cookie,但是ionic App只能读取本地域名,即http://localhost/的。所以是不能从浏览器存储里读取的。

    若真要获取cookie,在没有http-only属性前提下,在http请求 response的headers里可以获取到:

    
      this.http.request(new Request(this.options))  
          .toPromise()  
          .then(res => {  
               console.log("Http-Response==" + JSON.stringify(res.json()));  
               let cookie =res.headers['Set-Cookie']));  
               onSuccess(res.json(), context);  
          })  
         .catch(this.handleError);  
    

    let cookie =res.headers['Set-Cookie']));

    可以得到Set-Cookie里的数据。


    XMLHttpRequest.withCredentials 属性是一个Boolean类型,它指示了是否该使用类似cookies,authorization headers(头部授权)或者TLS客户端证书这一类资格证书来创建一个跨站点访问控制(cross-site Access-Control)请求。在同一个站点下使用withCredentials属性是无效的。

    此外,这个指示也会被用做响应中cookies 被忽视的标示。默认值是false。

    如果在发送来自其他域的XMLHttpRequest请求之前,未设置withCredentials 为true,那么就不能为它自己的域设置cookie值。而通过设置withCredentials 为true获得的第三方cookies,将会依旧享受同源策略,因此不能被通过document.cookie或者从头部相应请求的脚本等访问。
    所以设置了withCredentials 为true 之后, 请求都会默认带上cookie, 不需要其他额外的操作, 唯一要注意的是跨域的问题


    image.png

    相关文章

      网友评论

          本文标题:【转】ionic cookie问题

          本文链接:https://www.haomeiwen.com/subject/upanrftx.html