首页 > 其他分享 >后端接收不到前端传入的header参数信息

后端接收不到前端传入的header参数信息

时间:2023-01-03 15:44:16浏览次数:46  
标签:参数信息 8080 请求 accessToken 前端 request accept header token

问题描述:

在局域网下,前端页面请求时在请求头里携带token信息,后台获取不到header里的token参数,但是使用postman却能够接受到参数。

String token = request.getHeader("accessToken");
if (!StringUtil.hasText(token)) {
    token = request.getParameter("accessToken");
}

原因分析:

debug查看了下返回的request参数

host = 172.16.115.198:8080
connection = keep-alive
accept = */*
access-control-request-method = POST
access-control-request-headers = content-type,accessToken
origin = http://localhost:8080
user-agent = Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1
sec-fetch-mode = cors
referer = http://localhost:8080/
accept-encoding = gzip, deflate
accept-language = zh-CN,zh;q=0.9

用postman调接口的request参数

content-type = application/json;charset=utf-8
accessToken= 90E672B00F7005FF5468EFF8A5BDB4A1
user-agent = PostmanRuntime/7.26.8
accept = */*
postman-token = a0021135-db66-46c4-a1af-45f8542443b0
host = 127.0.0.1:8080
accept-encoding = gzip, deflate, br
connection = keep-alive
content-length = 392
cookie = JSESSIONID=2AA6371806B02CF13ADFE0A11E72A246; userKey=90E672B00F7005FF5468EFF8A5BDB4A1; sessionKey=90E672B00F7005FF5468EFF8A5BDB4A1****

发现cors跨域复杂请求会先发送一个方法为OPTIONS的预检请求,这个请求是用来验证本次请求是否安全的

第二个过滤器判断token时会把预请求当做真正的请求去判断,所以在第二个过滤器判断token之前先判断是不是预请求OPTIONS,不是则验证token,是则放行。

解决方案:

在判断token之前加判断语句

if (!request.getMethod().equals("OPTIONS")) {
	String token = request.getHeader("accessToken");
	if (!StringUtil.hasText(token)) {
		token = request.getParameter("accessToken");
	}
}

标签:参数信息,8080,请求,accessToken,前端,request,accept,header,token
From: https://www.cnblogs.com/yellow-mokey/p/17022383.html

相关文章

  • 【实战】前端JS环境下的渗透小技巧
    前端JS环境下的渗透小技巧https://mp.weixin.qq.com/s?__biz=MzI4MjI2NDI1Ng==&mid=2247484261&idx=1&sn=4b01cb98de0e589e7c7cb9d25dea3031&chksm=eb9dd4cadcea5ddc9b42c......
  • 前端二面vue面试题(边面边更)
    Vuex有哪几种属性?有五种,分别是State、Getter、Mutation、Action、Modulestate=>基本数据(数据源存放地)getters=>从基本数据派生出来的数据mutations=>提交......
  • 滴滴前端一面高频vue面试题及答案
    keep-alive使用场景和原理keep-alive是Vue内置的一个组件,可以实现组件缓存,当组件切换时不会对当前组件进行卸载。一般结合路由和动态组件一起使用,用于缓存组件......
  • 字节前端必会react面试题
    React中keys的作用是什么?Keys是React用于追踪哪些列表中元素被修改、被添加或者被移除的辅助标识。在React中渲染集合时,向每个重复的元素添加关键字对于帮助Reac......
  • 阿里前端二面必会react面试题总结
    非嵌套关系组件的通信方式?即没有任何包含关系的组件,包括兄弟组件以及不在同一个父级中的非兄弟组件。可以使用自定义事件通信(发布订阅模式)可以通过redux等进行全局状态......
  • TCP和UDP协议之间的区别,前端基础面试题
    前端基础面试题,TCP和UDP协议之间的区别tcp和udp作为传输层的两个协议,主要区别:1,tcp是面向链接的,(http协议握手)就类似打电话要先建立拨号,在进行链接。而udp在发送前......
  • 零基础小白自学前端の日记
    前言23/1/1晚上看到知乎上一篇自学前端的文章,感觉挺感兴趣,于是就决定学一学(也算是课余的放松,虽然我上课也一直在摸鱼)大体算了一下,感觉8个月或许能学完全套课程吧。知乎......
  • 前端Svelte框架初体验
    最近这些年,随着React、Vue、Angular三大框架逐渐稳定,前端技术栈的迭代似乎也渐渐缓慢下来。并且随着React16版本推出Fiber,Vue3.0版本的正式发布,前端三大框架都有了自己......
  • 前端技术-总结列表
    ------------------------------------------------------------------------------------------------------------------------------------------------------------......
  • 使用Axios设置请求头(headers)
    使用Axios设置请求头(headers)参考自:使用Axios来设置请求头(headers)的方法get请求axios.get(url,config).then(res=>console.log(res)).catch(err=>console.log(e......