应用 CORS 策略 Spring Boot 后的空响应
Empty response after aplying CORS policy Springboot
当我不涉及任何有关 CORS 的内容时,浏览器会向我显示常见错误
从源 'http://localhost:3000' 在 'http://localhost:8080/denodo-testwebapp/tags' 获取的访问已被 CORS 策略阻止
但同时在邮递员上进行 GET 请愿,我收到了包含所有数据的回复
GET http://localhost:8080/test-webapp/tags/
Response: [
{
"name": "Tag1"
},
{
"name": "Tag12"
},
{
"name": "Tag123"
}
]
但是当我尝试通过添加此代码来禁用 CORS 时:
@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class MyConfiguration implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-control-Allow-Origin", "http://localhost:3000");
response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, HEAD,OPTIONS, DELETE");
response.setHeader("Access-Control-Allow-Headers", "Accept, Accept-Language, Authorization, Cache-Control, Content-Language, Content-Type, X-Requested-With");
response.setHeader("Access-Control-Exposed-Headers", "Accept-Ranges, Access-Control-Allow-Credentials, Access-Control-Allow-Origin, Cache-Control, Content-Language, Content-Length, Content-Type, Date, ETag, Expires, Last-Modified, Location, Pragma, Server, Transfer-Encoding, Vary, WWW-Authenticate");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Credentials", "true");
}
public void init(FilterConfig filterConfig) {
}
public void destroy() {
}
}
我不再有浏览器错误,但现在,在邮递员上发出相同的 GET 请愿书,响应是空的,我不知道这里有什么干扰
您需要通过在方法末尾调用 chain.doFilter(request, response);
将 request/response 对转发到 FilterChain
。
当我不涉及任何有关 CORS 的内容时,浏览器会向我显示常见错误
从源 'http://localhost:3000' 在 'http://localhost:8080/denodo-testwebapp/tags' 获取的访问已被 CORS 策略阻止
但同时在邮递员上进行 GET 请愿,我收到了包含所有数据的回复
GET http://localhost:8080/test-webapp/tags/
Response: [
{
"name": "Tag1"
},
{
"name": "Tag12"
},
{
"name": "Tag123"
}
]
但是当我尝试通过添加此代码来禁用 CORS 时:
@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class MyConfiguration implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-control-Allow-Origin", "http://localhost:3000");
response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, HEAD,OPTIONS, DELETE");
response.setHeader("Access-Control-Allow-Headers", "Accept, Accept-Language, Authorization, Cache-Control, Content-Language, Content-Type, X-Requested-With");
response.setHeader("Access-Control-Exposed-Headers", "Accept-Ranges, Access-Control-Allow-Credentials, Access-Control-Allow-Origin, Cache-Control, Content-Language, Content-Length, Content-Type, Date, ETag, Expires, Last-Modified, Location, Pragma, Server, Transfer-Encoding, Vary, WWW-Authenticate");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Credentials", "true");
}
public void init(FilterConfig filterConfig) {
}
public void destroy() {
}
}
我不再有浏览器错误,但现在,在邮递员上发出相同的 GET 请愿书,响应是空的,我不知道这里有什么干扰
您需要通过在方法末尾调用 chain.doFilter(request, response);
将 request/response 对转发到 FilterChain
。