vue前后端分离如何解决每次请求session都会变的问题

 更新时间:2022年08月05日 17:15:21   作者:CahierX  
这篇文章主要介绍了vue前后端分离如何解决每次请求session都会变的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue前后端分离每次请求session都会变

因为前后端属于不同的域,导致每次ajax请求服务器都会当做新的用户访问,导致session丢失

解决方法

 <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="http://localhost:8080" />
        <add name="Access-Control-Allow-Headers" value="Content-Type" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
        <add name="Access-Control-Allow-Credentials" value="true"/>
      </customHeaders>
    </httpProtocol>
  <handlers>
</system.webServer>

在后端Web.config添加允许跨域,

<add name="Access-Control-Allow-Origin" value="http://localhost:8080" />

这里的value写前端的地址

再就是改前端ajax请求,我用的axios 在axios的index.js全局配置

axios.defaults.withCredentials=true;

这句话的意思是每次请求都带上cookie,这样每次取请求后端,就不会被认为是不同用户导致session丢失.哦了!

vue前后端分离session丢失,前端解决方式

背景:前端每次发送的ajax都是形成新的会话,本地测试时后端获取sessionId为null

**********后端的代码修改请查找其他文章,本文只涉及前端

1、解决前端每次发送的ajax都是形成新的会话

我是用的axios,只需在封装的请求时添加

axios.defaults.withCredentials=true;

根据自己代码做相应改变就行,请求时添加withCredentials属性,并且值为true。

withCredentials:true;请求时携带cookie

2、本地测试时结果发现还是无法成功,后端获取的sessionId为null

后端返回cookie

Set-Cookie: SESSION=NzgyMDdjZDgtNjJhMC00NmNkLTkxNWYtNjE4ZmRkYmFlOWQy; Path=/xxx/;

cookie后面还有一个path=/xxx/ 即后端项目路径,

只需要在为解决跨域设置代理时

原代码:

devServer: {
    proxy: {
      '/dev-api/': {
        target: 'http://baidu.com:8811',
        changOrigin: true,
        pathRewrite: {
          '^/dev-api/': '/'
        }
      }
    }
  }

以/dev-api/开头改为后端返回path开头

修改后:

devServer: {
    proxy: {
      '/xxx/': {
        target: 'http://baidu.com:8811',
        changOrigin: true,
        pathRewrite: {
          '^/xxx/': '/'
        }
      }
    }
  }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • vue配置代理vue.config.js后不生效的解决(小坑)

    vue配置代理vue.config.js后不生效的解决(小坑)

    这篇文章主要介绍了vue配置代理vue.config.js后不生效的解决(小坑),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • axios前端访问后端携带cookie的代码实例

    axios前端访问后端携带cookie的代码实例

    当用户在网站登录后,服务器会在其浏览器上设置一个包含登录信息的Cookie,通过这个Cookie,服务器能够识别用户是否已登录,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-09-09
  • 解决vue2.x中数据渲染以及vuex缓存的问题

    解决vue2.x中数据渲染以及vuex缓存的问题

    本篇文章主要介绍了vue2.x中请求之前数据显示以及vuex缓存的问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • el-table在弹窗中的使用示例详解

    el-table在弹窗中的使用示例详解

    本文总结了在Vue2项目中使用element-ui的el-table组件在弹窗中展示数据,并实现基础的勾选功能,内容包括如何设置row-key、使用reserve-selection属性、修改数据获取函数以支持跨页勾选以及如何在关闭弹窗时清理selection,感兴趣的朋友跟随小编一起看看吧
    2024-12-12
  • Vue3实现登录表单验证功能

    Vue3实现登录表单验证功能

    这篇文章主要介绍了Vue3实现登录表单验证功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • vue 使用iView组件中的Table实现定时自动滚动效果

    vue 使用iView组件中的Table实现定时自动滚动效果

    要在css中设置table的高度,使数据过多时出现滚动条,将纵向设置为overflow-y: auto;横向设置隐藏 overflow-x: hidden,接下来通过本文介绍vue使用iView组件中的Table实现定时自动滚动效果,需要的朋友可以参考下
    2024-05-05
  • 浅谈super-vuex使用体验

    浅谈super-vuex使用体验

    super-vuex是一套用于简化Vuex的数据架构。这篇文章主要介绍了浅谈super-vuex使用体验,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • vue3 数组清空与重新赋值的操作代码

    vue3 数组清空与重新赋值的操作代码

    这篇文章主要介绍了vue3 数组清空与重新赋值的操作代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • vue-cli 构建骨架屏的方法示例

    vue-cli 构建骨架屏的方法示例

    这篇文章主要介绍了vue-cli 构建骨架屏的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • 拿来就用vue-gird-layout组件封装示例

    拿来就用vue-gird-layout组件封装示例

    这篇文章主要介绍了vue-gird-layout组件封装示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08

最新评论