记录一个很小但又搞得我蛋疼的问题:我在登陆之后将token和用户数据存到session当中,可当我在后面的接口取值时,为null
接下来在调试的时候发现每次请求sessionid不一致,期初我还是以为是跨域造成的,于是按照以往的方式配置拦截器设置了这样一段
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));//支持跨域请求 response.setHeader("Access-Control-Allow-Headers", "Authorization, Origin, X-Requested-With, Content-Type, Accept,Access-Token"); response.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS,PATCH"); response.setHeader("Access-Control-Allow-Credentials","true");//是否支持cookie跨域
在前端配置了
axios.defaults.withCredentials = true;// 允许跨域携带cookie
重新启动项目刷新访问,发现依然不行,接下来我又把Origin写死成前端服务地址,可是还是不行......网上各种百度,答案跟我以上几乎一样,内心慌张,汗流一地...但还是得继续排查呀
继续一边百度一边打开了昨天研究的一个小demo,也用到了session中的数据,可那demo是能取到值的,我对比了连着之间的配置,Cors相关的配置都是差不多的呀,前端结构也一样的,这就奇怪了。
继续仔细对比,发现demo没有配置api项目名,也就是
server: servlet: #api前缀(项目名) context-path: / #服务端口 port: 8080
而我这边是有配置项目名的,于是,我也把yaml和前端的项目名去掉了,结果还真就好了!!!
可是配置在分模块开发nginx反向代理的场景下不配置项目名是不行的呀,可是又没有解决办法,情急之下想到了手动去修改Cookies的JSESSIONID的值,于是尝试在登陆之后将sessionid手动写入了Cookies的JSESSIONID,结果发现真的行得通!
可是仔细想想,这样做的话就把定sessionid的起始点写死了,如果要在登陆前请求其他需要用到session的接口,那不就GG了吗,如果有变动我们根本不确定要调的第一个接口是哪个,虽然我们开发时是知道的,但作为具有强迫症的开发者得我,是非常不容许“定死”“写死”这样的字眼出现在我的字典里的!!!
知道是多了项目名的问题后,于是我又顺着“项目名导致session数据丢失”的思路去逛帖子,结果真发现了国外一老哥的一篇帖子!
模模糊糊看懂他表达的意思是将Vue代理中的的名字改为接口根路径(也就是后台配置的api项目名),抱着试一试的心态去改了
proxyTable: { '/Api': { target: 'http://192.168.1.133:8080/ttic/api/', changeOrigin: true, pathRewrite: { '^/Api': '/' } } }, 改为以下proxyTable: { '/ttic': { target: 'http://192.168.1.133:8080/ttic/api/', changeOrigin: true, pathRewrite: { '^/ttic': '/' } } },
重新编译后,重新进入看腻了的登录界面,啪!按下回车键,大功告成!!!进入首页了!!!至此终于解决了困扰了我一个多小时的问题!!!赶紧打开CSDN记录一下!
Original url: Access
Created at: 2020-05-20 12:31:05
Category: default
Tags: none
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论