我在前端发起了不同的请求,为什么会出现在后端有的接口能拿到token,有的拿不到?

我在前端发起了两个请求,分别为:

onMounted(() =>{

loginAxios.post("/search/all",{})

.then((res: any) =>{

articleList.value = res.data.postList;

})

})

// 处理表单提交逻辑

loginAxios.post("/post/add", {})

.then((res: any) =>{

console.log(res);

})

};

两者都通过请求拦截器携带了token,
我在前端发起了不同的请求,为什么会出现在后端有的接口能拿到token,有的拿不到?

但是在后端的拦截器中,search请求能够拿到token,post却不能取到。
search:
我在前端发起了不同的请求,为什么会出现在后端有的接口能拿到token,有的拿不到?
post:
我在前端发起了不同的请求,为什么会出现在后端有的接口能拿到token,有的拿不到?

莫名奇妙的出现了错误

Cannot cast 'org.apache.catalina.core.ApplicationHttpRequest' to 'org.apache.catalina.connector.RequestFacade'

拦截器:

@Configuration

public class MvcConfig implements WebMvcConfigurer {

@Resource

StringRedisTemplate stringRedisTemplate;

@Override

public void addInterceptors(InterceptorRegistry registry) {

registry.addInterceptor(new LoginInterceptor())

.excludePathPatterns(

"/user/login",

"/search/all"

).order(1);

//order设置优先级,越小优先级越高

registry.addInterceptor(new RefreshTokenInterceptor(stringRedisTemplate)).addPathPatterns("/**").order(0);

}

}

在优先级为o的拦截器中取的token.

前端拦截器:

// 请求拦截器

instance.interceptors.request.use(

(config) => {

// 在请求头中添加token

const token = sessionStorage.getItem('token');

if (token) {

config.headers.Authorization = `${token}`;

}

return config;

},

(error) => {

return Promise.reject(error);

}

);


回答:

根据后端的报错,你试下把 org.apache.catalina.core.ApplicationHttpRequest 对象强制转换为 org.apache.catalina.connector.RequestFacade 对象。这两个类没有共同的子类,所以你没办法直接将它们相互转换。你可能想要访问底层的 HttpServletRequest 对象。如果是这种情况,你可以试以下方法:
你在 Servlet 中,可以直接使用 HttpServletRequest:

import javax.servlet.http.HttpServletRequest;

// ...

public void doGet(HttpServletRequest request, HttpServletResponse response) {

// 使用 request 对象

}

如果你在其他地方需要访问 HttpServletRequest,你可以试以下方法:

import javax.servlet.http.HttpServletRequest;

// ...

public void someMethod(Object request) {

if (request instanceof HttpServletRequest) {

HttpServletRequest httpRequest = (HttpServletRequest) request;

// 使用 httpRequest 对象

} else {

// 处理不是 HttpServletRequest 的情况

}

}

以上是 我在前端发起了不同的请求,为什么会出现在后端有的接口能拿到token,有的拿不到? 的全部内容, 来源链接: utcz.com/p/934042.html

回到顶部