java 拦截器 跨域
时间: 2023-07-08 09:45:45 浏览: 106
Java 拦截器可以用来处理跨域请求。在拦截器中,你可以设置响应头来允许跨域请求。具体来说,你可以在拦截器的 `preHandle` 方法中添加以下代码:
```java
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with,Authorization");
```
其中,`Access-Control-Allow-Origin` 表示允许跨域请求的来源,`*` 表示允许所有来源。`Access-Control-Allow-Methods` 表示允许的请求方法,`Access-Control-Max-Age` 表示预检请求的有效期,`Access-Control-Allow-Headers` 表示允许的请求头。你可以根据自己的需要进行修改。
需要注意的是,你需要在拦截器中判断请求方法是否为 `OPTIONS`,如果是,直接返回,否则继续执行后续代码。这是因为跨域请求会先发送一个预检请求(OPTIONS 方法),用于检查实际请求是否允许跨域。
```java
if (request.getMethod().equals("OPTIONS")) {
response.setStatus(HttpServletResponse.SC_OK);
return false;
}
```
阅读全文