前后端接收不到自定义Header

后端接收不到前端自定义Header

在拦截器中添加response.setHeader("Access-Control-Expose-Headers", 自定义Header);

前端接收不到后端自定义Header

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@Component
public class HeaderInterceptor implements HandlerInterceptor {


public static final String OPTIONS = "OPTIONS";


/**
* 跨域获得自定义header
*
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
response.setHeader("Access-Control-Allow-Origin", "*");
// Access-Control-Allow-Credentials为true,那么Origin不能为*
response.setHeader("Access-Control-Allow-Credentials", "false");
response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS");
response.setHeader("Access-Control-Max-Age", "86400");
response.setHeader("Access-Control-Allow-Headers", "token");
if (OPTIONS.equals(request.getMethod())) {
response.setStatus(HttpStatus.NO_CONTENT.value());
return false;
}
return true;
}
}


如果遇到上述问题,后端如果设置了response.setHeader("Access-Control-Allow-Credentials", "false");,那么记得前端需要添加

1
2
3
4
axios({
......
withCredentials: false
})
赏个🍗吧
0%