Vue项目实操cookie相关操作封装

x33g5p2x  于2022-02-17 转载在 Vue.js  
字(1.9k)|赞(0)|评价(0)|浏览(473)

1 介绍

在vue中通常使用axios进项http请求,但是axios不带cookie,这里可自己获取cookie,放到参数中进行登录验证等,方法不唯一。

2 utils

cookie.js

  1. /**
  2. * 读取cookie,
  3. * 需要注意的是cookie是不能存中文的,如果需要存中文,解决方法是后端先进行编码encode(),
  4. * 前端取出来之后用decodeURI('string')解码。(安卓可以取中文cookie,IOS不行)
  5. * */
  6. export const b_getCookie = (c_name) => {
  7. var name = c_name + "=";
  8. var ca = document.cookie.split(';');
  9. for (var i = 0; i < ca.length; i++) {
  10. var c = ca[i];
  11. while (c.charAt(0) == ' ') c = c.substring(1);
  12. if (c.indexOf(name) != -1) {
  13. return c.substring(name.length, c.length);
  14. }
  15. }
  16. return "";
  17. }
  18. /**
  19. * 设置cookie
  20. * c_name: cookie的名字,
  21. * value : cookie值,
  22. * expiredays: 过期时间(天数)
  23. * */
  24. export const b_setCookie = (c_name, value, expiredays) => {
  25. var exdate = new Date();
  26. exdate.setDate(exdate.getDate() + expiredays);
  27. document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
  28. }
  29. /**
  30. * 删除cookie
  31. * c_name: cookie的名字,
  32. * */
  33. export const b_delCookie = (c_name) => {
  34. var exp = new Date();
  35. exp.setTime(exp.getTime() - 1);
  36. var cval = getCookie(c_name);
  37. if (cval != null)
  38. document.cookie = c_name + "=" + cval + ";expires=" + exp.toGMTString();
  39. }

3 Test.vue

  1. <template>
  2. <div>
  3. <el-row>
  4. <el-input v-model="input" placeholder="请输入内容"></el-input>
  5. <el-button @click="getCookie">获取cookie</el-button>
  6. <el-button @click="setCookie">设置cookie</el-button>
  7. </el-row>
  8. </div>
  9. </template>
  1. <script>
  2. import {b_getCookie, b_setCookie} from "../utils/cookie";
  3. export default {
  4. name: "Test",
  5. data() {
  6. return {
  7. input: ''
  8. }
  9. },
  10. methods: {
  11. getCookie() {
  12. console.log("==========获取cookie===========")
  13. let username = b_getCookie("username")
  14. let password = b_getCookie("password")
  15. console.log(username);
  16. console.log(password);
  17. },
  18. setCookie() {
  19. console.log("设置cookie");
  20. b_setCookie("c_key", "c_value", 30)
  21. }
  22. }
  23. }
  24. </script>
  25. <style scoped>
  26. </style>

相关文章

最新文章

更多