簡介
前后端分離已經(jīng)是被越來越多公司在使用的一種開發(fā)模式了,拆分后的前端可以更多專注于頁面布局及數(shù)據(jù)渲染等專職工作,后端則提供API接口即可。目前我們在使用的是vue.js前后端分離。后端解決跨域的時候,也有多種方式,比如使用過濾器,攔截器都可以實現(xiàn)功能。以下分別Sping mvc項目與spring boot項目介紹代碼實現(xiàn)。
Spring mvc 項目 (過濾器實現(xiàn))
一、編寫過濾器 WebCORSFilter
public class WebCORSFilter implements Filter {
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
//加載配置項
ParamProperties paramProperties = SpringContextUtils.getBean(ParamProperties.class);
HttpServletResponse response = (HttpServletResponse) res;
//paramProperties.accessControlAllowOrigin 為配置項中的值,也就是指定合法請求域,如果沒有限制,可以配置為 * ,如果需要限制則配置為指定環(huán)境的IP或者域名
response.addHeader("Access-Control-Allow-Origin", paramProperties.accessControlAllowOrigin);
chain.doFilter(req, res);
}
@Override
public void init(FilterConfig arg0) throws ServletException {
}
}
二、web.xml中配置過濾器
<!--com.demo.core.filter.WebCORSFilter為過濾器實現(xiàn)類路徑-->
<filter>
<filter-name>cors</filter-name>
<filter-class>com.demo.core.filter.WebCORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>cors</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
注意
Spring MVC 4.2以上 才增加的CORS 支持 ,處理跨域請求問題。
Spring Boot 項目(攔截器實現(xiàn))
一、編寫攔截器 WebAppConfig
//配置類注解
@Configuration
public class WebAppConfig extends WebMvcConfigurerAdapter {
//注入配置類
@Resource
private ParamProperties paramProperties
/**
* 添加攔截器
* @param registry
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
}
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins(paramProperties.accessControlAllowOrigin);
}
}
然后就沒有然后了!
現(xiàn)代人的生活空間就像包包一樣,越來越復(fù)雜,擁塞著很多用得到,用不到的東西。包包的原始設(shè)計是一格一格的,可以很清楚,有秩序地分類,可是使用到最后,所有的東西還是都混在一起了。 -- 蔣勛《生活十講》