• 跨域导致无法获取cookie


    首先我用的框架是vue,请求协议用的是ajax,跨域的处理办法是使用了反向代理,在我之前的博文有详细说明,有兴趣的可以去查看下,在做身份认证权限限制的时候,后台有在http-header的response中set-cookie,前端允许跨域:

    按理说前端无需再做特殊处理,首次登陆成功后,response中有set-cookie,之后所有的请求都会在request中自动带上cookie;

    遇到的问题就是,之后的请求并没有携带cookie的内容,什么办法都试过了,最后才发现,是path路径的问题,服务端配置了只有路径为/tvmanage之下的才能访问cookie,所以只要服务端把配置的路径改为服务器ip加端口号就可以了,现在可以提交cookie出去了。

    顺便提一下如何获取http response的头部信息:

     ajax成功以后加入xhr对象,然后通过xhr.getAllResponseHeaders()就可以拿到了

    success: function (data, status, xhr) {
      console.log(xhr.getAllResponseHeaders())
    }

    也可以用ajax请求本地url:

    $.ajax({
    type: 'HEAD', // 获取头信息,type=HEAD即可
    url : window.location.href,
    //url:"http://device.qq.com/cgi-bin/device_cgi/remote_bind_get_Verify",
    complete: function( xhr,data ){
    // 获取相关Http Response header
    var wpoInfo = {
    // 服务器端时间
    "date" : xhr.getResponseHeader('Date'),
    // 如果开启了gzip,会返回这个东西
    "contentEncoding" : xhr.getResponseHeader('Content-Encoding'),
    // keep-alive ? close?
    "connection" : xhr.getResponseHeader('Connection'),
    // 响应长度
    "contentLength" : xhr.getResponseHeader('content-length'),
    // 服务器类型,apache?lighttpd?
    "server" : xhr.getResponseHeader('Server'),
    "vary" : xhr.getResponseHeader('Vary'),
    "transferEncoding" : xhr.getResponseHeader('Transfer-Encoding'),
    // text/html ? text/xml?
    "contentType" : xhr.getResponseHeader('Content-Type'),
    "cacheControl" : xhr.getResponseHeader('Cache-Control'),
    // 生命周期?
    "exprires" : xhr.getResponseHeader('Exprires'),
    "lastModified" : xhr.getResponseHeader('Last-Modified'),
    'set-cookie': xhr.getResponseHeader('set-cookie')
    };
    // console.log(xhr.getAllResponseHeaders())
    }
    });

    希望本文对你有所帮助!

  • 相关阅读:
    LeetCode 31 Next Permutation / 60 Permutation Sequence [Permutation]
    LeetCode 15 3Sum [sort] <c++>
    LeetCode 81 Search in Rotated Sorted Array II [binary search] <c++>
    LeetCode 33 Search in Rotated Sorted Array [binary search] <c++>
    LeetCode 80 Remove Duplicates from Sorted Array II [Array/auto] <c++>
    将博客搬至CSDN
    leetcode
    (转载) 图像领域常用资源
    Unity3D 之 C# 脚本
    Kinect 人机交互开发实践
  • 原文地址:https://www.cnblogs.com/wangqiao170/p/9300844.html
Copyright © 2020-2023  润新知