最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springboot處理配置CORS跨域請求時(shí)碰到的坑

 更新時(shí)間:2021年09月24日 15:44:27   作者:沒頭腦遇到不高興  
本篇文章介紹了我在開發(fā)過程中遇到的一個(gè)問題,以及解決該問題的過程及思路,通讀本篇對大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下

最近開發(fā)過程中遇到了一個(gè)問題,之前沒有太注意,這里記錄一下。我用的SpringBoot版本是2.0.5,在跟前端聯(lián)調(diào)的時(shí)候,有個(gè)請求因?yàn)橛脩魴?quán)限不夠就被攔截器攔截了,攔截器攔截之后打印日志然后response了一個(gè)錯誤返回了,但是前端Vue.js一直報(bào)如下跨域的錯誤,但是我是配置了跨域的。

has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我的攔截器中代碼如下:

private void writeResponse(HttpServletResponse response,
		ResponseResult<?> respResult, JSONObject reqParams) {
	PrintWriter writer = null;
	try {
		response.setCharacterEncoding("UTF-8");
		response.setContentType("application/json; charset=utf-8");
		writer = response.getWriter();
		writer.write(JSON.toJSONString(respResult));
		writer.flush();
	} catch (Exception e) {
		log.error("攔截器響應(yīng)異常,respJson:"+reqParams, e);
	} finally{
		if(writer != null){
			writer.close();
		}
	}
}

我的攔截器是通過實(shí)現(xiàn)WebMvcConfigurer接口,然后重新其addCorsMappings(CorsRegistry registry)方法添加跨域設(shè)置的,具體如下所示:

@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
 
    @Bean
    public UserCenterInterceptor userTokenInterceptor() {
        return new UserCenterInterceptor();
    }
   
    @Override
    public void addCorsMappings(CorsRegistry registry) {
    	registry.addMapping("/**")
        .allowedMethods("GET","POST","OPTIONS")
        .allowedOrigins("你要設(shè)置的域名")
        .allowedHeaders("*")
        .allowCredentials(true);
    	WebMvcConfigurer.super.addCorsMappings(registry);
    }
}

原因是請求經(jīng)過的先后順序問題,請求會先進(jìn)入到自定義攔截器中,而不是進(jìn)入Mapping映射中,所以返回的頭信息中并沒有配置的跨域信息,瀏覽器就會報(bào)跨域異常。

正確的設(shè)置跨域的方式是通過CorsFilter過濾器,具體代碼如下:

@Configuration
public class CorsConfig {
 
    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*");
        corsConfiguration.addAllowedHeader("*");
        corsConfiguration.addAllowedMethod("*");
        corsConfiguration.setAllowCredentials(true);
        return corsConfiguration;
    }
 
    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", buildConfig());
        return new CorsFilter(source);
    }
}

完美解決了坑,很開森,哈哈哈?。?!繼續(xù)行走在踩坑的路上。。。。。。

到此這篇關(guān)于Springboot處理配置CORS跨域請求時(shí)碰到的坑的文章就介紹到這了,更多相關(guān)Springboot CORS跨域請求內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java?Comparable和Comparator的區(qū)別及作用面試精講

    java?Comparable和Comparator的區(qū)別及作用面試精講

    這篇文章主要為大家介紹了java?Comparable和Comparator的區(qū)別及作用面試精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • java中調(diào)用super的實(shí)例講解

    java中調(diào)用super的實(shí)例講解

    在本篇文章里小編給大家分享了一篇關(guān)于java中調(diào)用super的實(shí)例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-12-12
  • SpringBoot?實(shí)現(xiàn)自定義的?@ConditionalOnXXX?注解示例詳解

    SpringBoot?實(shí)現(xiàn)自定義的?@ConditionalOnXXX?注解示例詳解

    這篇文章主要介紹了SpringBoot?實(shí)現(xiàn)自定義的?@ConditionalOnXXX?注解,通過示例代碼介紹了實(shí)現(xiàn)一個(gè)自定義的?@Conditional?派生注解,Conditional?派生注解的類如何注入到?spring?容器,需要的朋友可以參考下
    2022-08-08
  • IDEA實(shí)用好用插件推薦及使用方法教程詳解(必看)

    IDEA實(shí)用好用插件推薦及使用方法教程詳解(必看)

    這篇文章主要介紹了IDEA實(shí)用好用插件推薦及使用方法教程,本文通過實(shí)例截圖相結(jié)合給大家介紹的非常詳細(xì),對大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 一文秒懂logstash收集springboot日志的方法

    一文秒懂logstash收集springboot日志的方法

    通過這篇文章帶你了解logstash收集springboot日志的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 一篇文章帶你學(xué)習(xí)Mybatis-Plus(新手入門)

    一篇文章帶你學(xué)習(xí)Mybatis-Plus(新手入門)

    這篇文章主要介紹了MyBatis-Plus 快速入門案例(小白教程),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • 詳解Spring注解--@Autowired、@Resource和@Service

    詳解Spring注解--@Autowired、@Resource和@Service

    本篇文章主要介紹最重要的三個(gè)Spring注解,也就是@Autowired、@Resource和@Service,具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-05-05
  • Spring?Boot2?整合連接?Redis的操作方法

    Spring?Boot2?整合連接?Redis的操作方法

    在Spring?Boot中,通過RedisTemplate可以方便地對Redis進(jìn)行操作,包括設(shè)置和獲取數(shù)據(jù),文章詳細(xì)介紹了如何配置RedisTemplate,創(chuàng)建RedisConfig類進(jìn)行自定義配置,并通過Controller訪問Redis數(shù)據(jù)庫,感興趣的朋友一起看看吧
    2025-02-02
  • java使用定時(shí)器實(shí)現(xiàn)監(jiān)聽數(shù)據(jù)變化

    java使用定時(shí)器實(shí)現(xiàn)監(jiān)聽數(shù)據(jù)變化

    這篇文章主要為大家詳細(xì)介紹了Java如何使用定時(shí)器監(jiān)聽數(shù)據(jù)變化,當(dāng)滿足某個(gè)條件時(shí)(例如沒有數(shù)據(jù)更新)自動執(zhí)行某項(xiàng)任務(wù),有興趣的可以了解下
    2023-11-11
  • Java比較兩個(gè)對象是否相等的方法

    Java比較兩個(gè)對象是否相等的方法

    這篇文章主要介紹了Java比較兩個(gè)對象是否相等的方法,文中給出了三種方法,并通過代碼講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-03-03

最新評論

新宾| 上林县| 山阴县| 平昌县| 米林县| 阳曲县| 鄂托克前旗| 临城县| 荃湾区| 冕宁县| 汾阳市| 静宁县| 上蔡县| 岢岚县| 安溪县| 仁寿县| 柳河县| 新巴尔虎左旗| 怀集县| 三门县| 江达县| 天峻县| 太湖县| 龙里县| 商水县| 东乌| 新宁县| 都安| 昭平县| 长乐市| 尼玛县| 大名县| 全南县| 泰来县| 富平县| 仁寿县| 抚顺县| 五莲县| 博罗县| 梓潼县| 竹北市|