• VUE3 + Django 接口请求每次都产生新的session_id,应该如何解决?


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 爱学习的吕 2024-06-29 18:25 采纳率: 50% 浏览 2 首页/ Python / VUE3 + Django 接口请求每次都产生新的session_id,应该如何解决? djangovue.jspycharm 在使用VUE3 + Django做登录验证时,验证码始终显示过期。后来排查发现,每次接口调用都会产生新的session_id。在网上搜索,很多说是跨域问题导致的。我用的django-cors-headers库解决跨域问题,也配置了允许客户端携带cookie,vue中也配置了携带cookie,但问题始终没有解决。这是我的Django项目中setting的跨域相关配置: -- 在vue3的axios接口定义中也配置了 withCredentials: true,如下图 两次接口的调用情况如下,每次的sessionid都不同: 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    1条回答 默认 最新

    • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-06-29 18:48
      关注
      让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
      一个可能的原因是没有设置跨域请求的凭据,解决方法是在 Django 的跨域配置中设置 `CORS_ALLOW_CREDENTIALS` 为 `True`。 在 Django 项目的 settings.py 中,找到以下代码:
      CORS_ALLOW_CREDENTIALS = False
      

      修改为:

      CORS_ALLOW_CREDENTIALS = True
      

      然后重新启动 Django 项目。 这样做的目的是告诉浏览器在跨域请求中携带凭据(session ID)。 案例:

      # settings.py
      CORS_ALLOW_CREDENTIALS = True
      

      代码示例:

      // Vue 中的 axios 请求
      axios.post('http://example.com/api/login/', {
        // 请求参数
      }, {
        withCredentials: true
      })
      .then(response => {
        // 处理响应
      })
      .catch(error => {
        // 处理错误
      });
      

      这样修改后,每次请求都会带上正确的 session ID,验证码显示过期的问题应该会解决。

      评论
      编辑
      预览

      报告相同问题?

    • 相关阅读:
      马上2023年了,学一下gradle(Gradle)安装及配置
      中文情感分类
      解决报错:RuntimeError: “LayerNormKernelImpl“ not implemented for ‘Half‘
      从零搭建Vue项目
      解决docker部署项目提示Failed to execute goal com.spotifydocker-maven-plugin1.0.0build
      一款.NET开源、免费、实用的多功能原神工具箱(改善桌面端玩家的游戏体验)
      重温Python基础,都是最基础的知识点
      对于低代码技术库的选型
      GoLand远程开发IDE:使用SSH远程连接服务器进行云端编程
      二级医院绩效考核系统源码,针对院内实际情况,可对考核方案进行灵活配置
    • 原文地址:https://ask.csdn.net/questions/8125375