• 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,验证码显示过期的问题应该会解决。

      评论
      编辑
      预览

      报告相同问题?

    • 相关阅读:
      IOI2018 werewolf 狼人 题解
      Java Web程序设计基础二(服务器交互篇——四大属性作用域)
      目标检测论文解读复现之九:基于改进YOLOv5的复杂场景下SAR图像船舶检测方法
      Web 应用开发之文件下载
      RTC 实时音视频技术知识全面盘点
      Kubernetes 通过 Deployment 部署Jupyterlab
      驱动LCD12864显示器
      操作系统(2)--进程状态、控制、通信,线程的实现方式、切换、处理机的调度。
      【快速上手系列】使用支付宝沙箱环境进行支付测试的快速上手
      伪数据--学习笔记
    • 原文地址:https://ask.csdn.net/questions/8125375