简单请求和复杂请求的
满足一下条件即为简单请求
请求方式为:GET、POST、HEAD
除了一下的请求字段之外,没有自定义的请求
- Accept
- Accept-Language
- Content-Type
- DPR
- Downlink
- Save-Data
- Viewport-Width
- Width
Content-Type的值只有以下三种
- text/plain
- multipart/form-data
application/x-www-form-urlencoded
- 请求中的任意
XMLHttpRequestUpload
对象均没有任何事件监听器
XMLHttpRequestUpload
对象可以使用XMLHttpRequest.upload
属性访问- 请求中没有使用
ReadableStream
对象复杂请求
非简单请求即为复杂请求。
这里就是讨论的是,复杂请求在实际的请求之前,需要发起预检请求的请求
就是这个特性在配置拦截器是遇到了大坑😒,上图片
发了两个请求,第一个请求就是做预检的请求,在看我的代码
package cn.choujay.tlias.config;
import cn.choujay.tlias.filter.LoginInterceptorAdapter;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginInterceptorAdapter()).excludePathPatterns("/emp/login");
}
}
这里我已经排查了登录界面的拦截请求了,但是后端还是不给过
2023-06-02 09:27:22.562 INFO 13012 — [nio-8081-exec-1] c.c.t.filter.LoginInterceptorAdapter : 解析失败
2023-06-02 09:27:57.712 INFO 13012 — [nio-8081-exec-4] c.c.t.filter.LoginInterceptorAdapter : 令牌为: token:eyJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwiZXhwIjoxNjg1NTQ1OTY2LCJ1c2VybmFtZSI6ImppbnlvbmcifQ.H2YVMYU7qvpP0QIrF09-uGWGg5iKwUH_ay0bR-1Tjmc
2023-06-02 09:27:57.714 INFO 13012 — [nio-8081-exec-4] c.c.t.filter.LoginInterceptorAdapter : 解析失败
2023-06-02 09:28:01.403 INFO 13012 — [nio-8081-exec-3] c.c.t.filter.LoginInterceptorAdapter : 令牌为: token:eyJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwiZXhwIjoxNjg1NTQ1OTY2LCJ1c2VybmFtZSI6ImppbnlvbmcifQ.H2YVMYU7qvpP0QIrF09-uGWGg5iKwUH_ay0bR-1Tjmc
2023-06-02 09:28:01.404 INFO 13012 — [nio-8081-exec-3] c.c.t.filter.LoginInterceptorAdapter : 解析失败
2023-06-02 09:28:31.924 INFO 13012 — [nio-8081-exec-8] c.c.t.filter.LoginInterceptorAdapter : 令牌为: token:eyJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwiZXhwIjoxNjg1NTQ1OTY2LCJ1c2VybmFtZSI6ImppbnlvbmcifQ.H2YVMYU7qvpP0QIrF09-uGWGg5iKwUH_ay0bR-1Tjmc
2023-06-02 09:28:31.925 INFO 13012 — [nio-8081-exec-8] c.c.t.filter.LoginInterceptorAdapter : 解析失败
2023-06-02 09:28:39.563 INFO 13012 — [nio-8081-exec-9] c.c.t.filter.LoginInterceptorAdapter : 令牌为: token:eyJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwiZXhwIjoxNjg1NTQ1OTY2LCJ1c2VybmFtZSI6ImppbnlvbmcifQ.H2YVMYU7qvpP0QIrF09-uGWGg5iKwUH_ay0bR-1Tjmc
2023-06-02 09:28:39.565 INFO 13012 — [nio-8081-exec-9] c.c.t.filter.LoginInterceptorAdapter : 解析失败
我后面收集了一些资料,说的要放行复杂请求的方法,使用一下代码就可以放行了
//直接放行OPTIONS请求,复杂请求,这样就可以了
if (request.getMethod().equals("OPTIONS")) {
return true;
}