在
Spring Boot中,可以通过以下
几种 方式 解决 跨域问题:
1. 使用注解 @CrossOrigin:可以在控制器类或者具体的请求处理方法上添加 @CrossOrigin 注解来允许
跨域请求。例如,可以在控制器类上添加 @CrossOrigin(origins = "http://example.com"),指定允许来自"http://example.com"域的请求。
2. 使用配置文件:可以通过在配置文件中配置
跨域相关属性来
解决 跨域问题。在application.properties或application.yml文件中添加以下配置:
# 允许跨域的域名spring.mvc.allow-cors=truespring.mvc.cors.allowed-origins=http://example.com
3. 自定义过滤器:可以编写一个自定义的过滤器,在过滤器中设置响应头信息来允许
跨域请求。例如,创建一个名为CorsFilter的过滤器类,实现
javax.servlet.Filter接口,并在doFilter方法中设置响应头:
javaimportjavax.servlet.*;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;public class CorsFilter implements Filter {@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {HttpServletResponse httpResponse = (HttpServletResponse) response;httpResponse.setHeader("Access-Control-Allow-Origin", "http://example.com");httpResponse.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");httpResponse.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");httpResponse.setHeader("Access-Control-Max-Age", "3600");chain.doFilter(request, response);}}
然后,在
Spring Boot的启动类中注册该过滤器:
javaimport org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class AppConfig {@Beanpublic FilterRegistrationBean<CorsFilter> corsFilter() {FilterRegistrationBean<CorsFilter> registrationBean = new FilterRegistrationBean<>();registrationBean.setFilter(new CorsFilter());registrationBean.addUrlPatterns("/*");return registrationBean;}}
以上是
几种常用的
解决 跨域问题的方法。根据具体情况选择适合自己项目的
方式进行配置和实现。
到此这篇跨域解决方案java(前端跨域解决方案)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hd-java/32288.html