axios+vue请求时携带cookie的方法实例

 更新时间:2022年09月20日 10:07:51   作者:zhouang770377  
做项目时遇到一个需求,后端需要在接口请求时,对用户登陆状态进行判断,需要在请求时携带Cookie,下面这篇文章主要给大家介绍了关于axios+vue请求时携带cookie的相关资料,需要的朋友可以参考下

axios+vue 请求时如何携带cookie

1,当符合同源策略时,可以直接设置 document.cookie = " 你要设置的内容 "

mounted() {
    document.cookie = "ioiopipoadiasdasdbasdbas";   // 非跨域传递cookie 直接设置cookie即可
    this.getData();   //请求的方法
   
  },
  methods: {
    async getData() {
       let data = await axios.get('/data.json', {
         params: {
           id: 1,
         },
  
       }
    },
  },

此时:可以直接向服务端传递cookie,无需设置。

2,当出现跨域请求的时候

默认情况下:跨域请求不会携带cookie,所以 要添加 withCredentials: true 配置

注意:这种情况下稍微复杂,但是对于前端而言,只需要写上 withCredentials: true 该配置即可

当然在此之前还有 document.cookie = “ioiopipoadiasdasdbasdbas”; 这行代码,你需要设置一个cookie,才可以传给服务端。

 document.cookie = “ioiopipoadiasdasdbasdbas”
 let data2 = await this.$axios.get("http://localhost:9000/select", {
        withCredentials: true,   //设置跨域的时候传递cookie,需要服务端的配合   
      });
      console.log(data2, "data2");

此时:一定需要后端的配合,不然浏览器会爆出一些错误,导致请求失败。

后端代码以node.js为例:

在响应头中添加以下几个字段

res.header('Access-Control-Allow-Credentials', 'true') //当客户端跨域并需要传递cookie时,需要设置Access-Control-Allow-Credentials,并且值为“true”  代表是否向页面暴露cookie
    // 指定允许的跨域请求字段。
res.header(
        'Access-Control-Allow-Headers',
        'token,Content-Type,Content-Length, Authorization, Accept,X-Requested-With,domain,zdy' //当客户端跨域并需要传递cookie时,需要设置Access-Control-Allow-Headers,并且值为不能为“*”,需要具体配置  代表允许上传的请求头字段
    )
    // 指定允许的跨域请求的来源。填写星号(*)表示全部域名;您也可以填写完整域名,例如http://www.aliyun.com。
res.header('Access-Control-Allow-Origin', 'http://localhost:8082') //当客户端跨域并需要传递cookie时,需要设置Access-Control-Allow-Origin,并且值为不能为“*”,需要具体配置
    // 指定允许的跨域请求方法。可同时设置多个方法,多个方法用英文逗号(,)分隔。
res.header('Access-Control-Allow-Methods', 'PUT,POST,GET,DELETE,OPTIONS')

也就是说,不管后端是什么语言,需要返回以上四个响应头字段,如下所示,跨域状态下,cookie已经传递成功

值得强调的是:Access-Control-Allow-Origin、Access-Control-Allow-Headers 两个字段一定不要设置为 “*” , 否则也会失败。 此时,请设置具体配置, 这是一个坑,查阅资料得知,部分浏览器对 * 的兼容性不好,有的说法解释说 Access-Control-Allow-Credentials’:‘true’ 该字段会影响 * 的解析,导致报错。

以上就是我对 axios携带 cookie的一些尝试。

总结

到此这篇关于axios+vue请求时携带cookie的文章就介绍到这了,更多相关axios vue请求携带cookie内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue监听数据对象变化源码

    Vue监听数据对象变化源码

    这篇文章主要为大家详细介绍了Vue监听数据对象变化的源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • 解决项目vite1.0升级到2.0打包遇到Some chunks are larger问题

    解决项目vite1.0升级到2.0打包遇到Some chunks are larger问题

    本文主要介绍了解决项目vite1.0升级到2.0打包遇到Some chunks are larger问题,文中根据实例编码详细介绍的十分详尽,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Vue绑定内联样式问题

    Vue绑定内联样式问题

    这篇文章主要介绍了Vue绑定内联样式的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • vue模版编译详情

    vue模版编译详情

    本文的初衷是想让更多哎学习的人知道并了解vue模版编译,所以文中主要以阶段流程为主,不会涉及过多的底层代码逻辑,需要的朋友可以参考一下
    2021-09-09
  • vue开发自定义的全局公共组件详解

    vue开发自定义的全局公共组件详解

    本文介绍了如何开发自定义全局公共组件的两种方法,第一种方法是通过在components文件夹中创建新的组件文件夹,例如Loading文件夹,并在其中创建index.js和index.vue文件,通过在vue的入口文件main.js中进行引入,可以实现组件的全局调用
    2024-10-10
  • 在pycharm中开发vue的方法步骤

    在pycharm中开发vue的方法步骤

    这篇文章主要介绍了在pycharm中开发vue的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Vue创建头部组件示例代码详解

    Vue创建头部组件示例代码详解

    本文通过实例代码给大家介绍了Vue创建头部组件的相关知识,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2018-10-10
  • VUE接入腾讯验证码功能(滑块验证)备忘

    VUE接入腾讯验证码功能(滑块验证)备忘

    这篇文章主要介绍了VUE接入腾讯验证码功能(滑块验证)备忘,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • vue项目使用$router.go(-1)返回时刷新原来的界面操作

    vue项目使用$router.go(-1)返回时刷新原来的界面操作

    这篇文章主要介绍了vue项目使用$router.go(-1)返回时刷新原来的界面操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • 关于Vue组件间的常用传参方式

    关于Vue组件间的常用传参方式

    这篇文章主要介绍了关于Vue组件间的常用传参方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09

最新评论