關(guān)于解決vue.js跨域請求極簡實現(xiàn)(后端)

簡介

前后端分離已經(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è)計是一格一格的,可以很清楚,有秩序地分類,可是使用到最后,所有的東西還是都混在一起了。 -- 蔣勛《生活十講》

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,253評論 6 342
  • 我就想問你一句那是不是愛去 ,沖動不多的都不是愛,對嗎?你沒有牽我的手,我就知道,你喜歡的是曖昧,太孤單,需要人陪...
    迷于情愛閱讀 190評論 0 1
  • 寫這篇文章是源于最近的工作和生活。說生活吧,最喜歡玩的小伙伴之一離開了,去到了繁華似錦的城市,羨慕的不是物質(zhì)本身,...
    靜蘭紫軒閱讀 278評論 0 1
  • 總是潛意識里凡事都要準(zhǔn)備好,可每次都沒有準(zhǔn)備好,都不近人意,所以準(zhǔn)備是在平常,不是在事發(fā)前,如果盡力了,還是沒有達...
    滄海2016閱讀 377評論 0 1

友情鏈接更多精彩內(nèi)容