失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > ajax获得header信息 关于jquery ajax跨域请求获取response headers问题

ajax获得header信息 关于jquery ajax跨域请求获取response headers问题

时间:2021-04-28 11:39:53

相关推荐

ajax获得header信息 关于jquery ajax跨域请求获取response headers问题

背景:最近项目jwt用户认证方式,关于jwt本人就不再赘述,大家可自行百度。

jwt token基本流程是这样的:

用户使用用户名密码来请求服务器

服务器进行验证用户的信息

服务器通过验证发送给用户一个token

客户端存储token,并在每次请求时附送上这个token值,本项目将token存储在localstorage中

服务端验证token值,并返回数据

本项目的需求是,生成token的过期时间为10分钟,如果用户未操作时间超过10分钟,则需重新登录,如果一直有操作,则要给token延长过期时间。

找了很久,都没能找到延长token过期时间的方法,网上大都说的是采用生成新token的方式。最终决定采用如下方式解决:每个请求都去检查token,如果该token离过期时间还剩1分钟,则重新生成token,将新生成的token放入响应头中,前端ajax请求完成后,去response headers中查找token,如果有,则替换掉原来存在localstorage中的token(即后面所有的请求都采用新的token)。看上去觉得没有什么难的,其中遇到个很棘手的问题,由于本项目采用的是spring cloud架构,前后端完全分离,所有的ajax请求都是跨域的,以至于在前台getResponseHead('token')时,无法获取到响应头中的token。郁闷良久,最终找到一个解决方案,在后台header中添加

"Access-Control-Expose-Headers", "token"//token为自定义响应头

即可解决ajax跨域无法获取问题

如果觉得《ajax获得header信息 关于jquery ajax跨域请求获取response headers问题》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。