vue设置cookie和获取cookie,vue-cookie

  vue设置cookie和获取cookie,vue-cookie

  本文主要介绍了如何在Vue项目中设置反向代理和cookie设置,具有很好的参考价值。希望对你有帮助。如有错误或不足之处,请不吝赐教。

  

目录

   Vue设置反向代理和cookie设置项目场景问题描述原因分析解决方案Vue项目使用js-cookie详情项目中js-cookie是什么?项目中安装的门户文件(main.js)是全局引入的,在项目中使用。

  

Vue设置反向代理和cookie设置

  

项目场景

  最近,Vue被用于开发一个新项目。因为服务器还没到,所以调用了后端本地接口。因为在请求接口时没有跨域,所以没有反向代理。在后面,我被一个很基础的东西给践踏了,就是一些cookie的知识。记录下来,加深我的印象。

  

问题描述

  在联调过程中发现调用登录接口后,调其他接口时会报错登录状态无效。之前做了很久小程序的项目突然遇到这种傻逼。

  

原因分析

  首先这个问题上来了,我问了后端,后端说Cookie没传给他。那么我们来确认一下Cookie的定义和作用。

  HTTP协议中的Cookie包括Web Cookie和浏览器Cookie,是服务器发送给Web浏览器的一小段数据。服务器发送给浏览器的Cookie将被浏览器存储,并与下一个请求一起发送给服务器。通常用来判断两个请求是否来自同一个浏览器,比如用户一直登录。

  当从客户机接收到HTTP请求时,服务器可以发送一个Set-Cookie头和一个响应。Cookie通常由浏览器存储,然后将Cookie与HTTP头一起发送到服务器。

  看到这个,我就去看看。当我成功调用登录接口时,后端返回了Set-Cookie,却发现浏览器没有设置。当你看到这个,你就知道Set-Cookie浏览器不起作用了。出于Cookie安全考虑,跨域Cookie不能在浏览器中获取。

  

解决方案

  在Vue项目的根目录Vue.config.js中设置反向代理。

  模块.导出={

  devServer: {

  //设置代理

  代理服务器:{

  /api: {

  目标: 3358127.0.0.1: 8081/,//域名

  Ws: true,//是否启用websockets?

  ChangOrigin: true,//Open proxy:在本地创建一个虚拟服务器,然后同时发送和接收请求的数据。

  //这样服务器和服务器之间交换数据就不会出现跨域的问题。

  路径要求写入:{

  ^/api: /

  }

  }

  }

  }

  }

  请求时。

  ///api 等于 http://127.0.0.1:8081/api

  //此时请求地址为‘http://127 . 0 . 0 . 1:8081/API/picture?“方法=上传”

  get(/api/picture?方法=上传’)

  搞定了。开心。

  

Vue项目使用js-cookie细则

  背景:在最近的vue项目中,由于项目的token需要设置过期,当然这个过期行为的逻辑一直是由后端控制的,但是这次也要求前端监控token时间。因为懒得封装cookie,所以用了JS-cookies的cookie封装库。

  

什么是js-cookie

  看名字就知道这是一个关于cookie存储的js API。根据官网的描述,它的优点是:适用于所有浏览器,接受任何字符,经过任何测试都没有bug,支持CMD和CommonJS,压缩后非常小,只有900字节。

  

在项目中进行安装

  npm安装js-cookie js-cookie -保存

  

在项目中的入口文件(main.js)全局引入

  从“js-cookie”导入cookie

  

在项目中使用

  1.cookie set方法支持的属性有:expires-过期时间路径-设置为创建cookie域-对于指定页面->设置为对指定域名和指定域名的子域可见。安全值为false和true,表示该设置是否仅支持https,默认值为false。

  cookie . set( key , value );//创建简单的cookie

  Cookies.set(key , value ,{ expires:27 });//创建有效期为27天的cookie

  Cookies.set(key , value ,{ expires: 17,path: });//您可以通过配置path为当前页面创建一个有效期为7天的cookie

  2.带上饼干

  cookies . get( key );//获取对应于指定键的值

  cookies . get();//获取所有值

  3.删除cookie

  cookies . remove( key );//删除普通cookie

  Cookies.remove(name ,{ path: });//删除指定页面路径的cookie。

  注意:如果一个对象被存储,比如:

  userInfo={年龄:111,分数:90 };Cookie.set(userInfo ,userInfo)

  提取的userInfo需要JSON解析,解析成对象:

  let RES=JSON . parse(cookie . get( userInfo ));

  当然,你也可以使用:

  cookie . get JSON( userInfo );

  以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: