第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring Data Rest和Cors

Spring Data Rest和Cors

小唯快跑啊 2019-08-12 16:48:45
Spring Data Rest和Cors我正在開發(fā)一個帶有Rest接口和dart前端的Spring Boot應(yīng)用程序。XMLHttpRequest確實執(zhí)行一個完全正確處理的OPTIONS請求。在此之后,發(fā)出最終的GET(“/ products”)請求并失敗:請求的資源上不存在“Access-Control-Allow-Origin”標(biāo)頭。因此不允許來源' http:// localhost:63343'訪問。經(jīng)過一些調(diào)試后,我發(fā)現(xiàn)了以下內(nèi)容:為RepositoryRestHandlerMapping之外的所有子類填充了AbstractHandlerMapping.corsConfiguration。在RepositoryRestHandlerMapping中,沒有corsConfiguration在創(chuàng)建時存在/設(shè)置,因此它不會被識別為cors路徑/資源。=>沒有連接CORS標(biāo)頭這可能是問題嗎?我怎么設(shè)置它?配置類:@Configurationpublic class RestConfiguration extends RepositoryRestMvcConfiguration {     @Override     public void addCorsMappings(CorsRegistry registry) {         registry.addMapping("/**").allowCredentials(false).allowedOrigins("*").allowedMethods("PUT", "POST", "GET", "OPTIONS", "DELETE").exposedHeaders("Authorization", "Content-Type");     }    ...}我甚至嘗試設(shè)置每個注釋的Cors:@CrossOrigin( methods = RequestMethod.GET, allowCredentials = "false")public interface ProductRepository extends CrudRepository<Product, String> {}原始請求標(biāo)頭:GET /products HTTP/1.1Host: localhost:8080Connection: keep-aliveCache-Control: max-age=0authorization: Basic dXNlcjpwYXNzd29yZA==User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/43.0.2357.130 Chrome/43.0.2357.130 Safari/537.36Content-Type: application/jsonAccept: */* Referer: http://localhost:63343/inventory-web/web/index.html Accept-Encoding: gzip, deflate, sdch Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4原始響應(yīng)標(biāo)頭:HTTP/1.1 200 OKServer: Apache-Coyote/1.1Content-Type: application/hal+json;charset=UTF-8Transfer-Encoding: chunkedDate: Thu, 30 Jul 2015 15:58:03 GMT使用的版本:Spring Boot 1.3.0.M2 Spring 4.2.0.RC2我錯過了什么?
查看完整描述

3 回答

?
藍(lán)山帝景

TA貢獻(xiàn)1843條經(jīng)驗 獲得超7個贊

實際上,在Spring Data REST 2.6(Ingalls)之前,只有HandlerMappingSpring MVC創(chuàng)建的實例WebMvcConfigurationSupport和帶注釋的控制器才能@CrossOrigin識別CORS。

但是現(xiàn)在已經(jīng)修復(fù)了DATAREST-573,RepositoryRestConfiguration現(xiàn)在公開了一個getCorsRegistry()全局設(shè)置,并且@CrossOrigin還可以識別存儲庫上的注釋,因此這是推薦的方法。

對于必須堅持使用Spring Data REST 2.5(Hopper)或以前版本的人,我認(rèn)為最好的解決方案是使用基于過濾器的方法。顯然你可以使用Tomcat,Jetty或者這個,但要注意Spring Framework 4.2還提供了一個CorsFilter使用相同@CrossOriginaddCorsMappings(CorsRegistry registry)接近的CORS處理邏輯的方法。通過將UrlBasedCorsConfigurationSource實例傳遞給CorsFilter構(gòu)造函數(shù)參數(shù),您可以輕松獲得與Spring本機CORS全局支持一樣強大的功能。

如果您使用的是Spring Boot(支持Filterbean),它可能是這樣的:

@Configurationpublic class RestConfiguration {

    @Bean
    public FilterRegistrationBean corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = new CorsConfiguration().applyPermitDefaultValues();
        source.registerCorsConfiguration("/**", config);
        FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
        bean.setOrder(0);
        return bean;
    }}


查看完整回答
反對 回復(fù) 2019-08-12
?
ITMISS

TA貢獻(xiàn)1871條經(jīng)驗 獲得超8個贊

自從Ingalls列車實現(xiàn)以來,現(xiàn)在開始在Spring Data中支持CORS。有兩種方法可以解決:

  1. @CrossOrigin帶有指定origins,methodsallowedHeaders通過@RepositoryRestResource接口的注釋。

    @CrossOrigin(...)@RepositoryRestResourcepublic interface PageRepository extends CrudRepository<Page, Long> { ... }
  2. 具有RepositoryRestConfiguration內(nèi)部@Configuration類的全局配置。@CrossOrigin因此不需要標(biāo)記存儲庫。

    @Configurationpublic class GlobalRepositoryRestConfigurer extends RepositoryRestConfigurerAdapter {
    
        @Override
        public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
            config.getCorsRegistry()
                      .addMapping(CORS_BASE_PATTERN)
                      .allowedOrigins(ALLOWED_ORIGINS)
                      .allowedHeaders(ALLOWED_HEADERS)
                      .allowedMethods(ALLOWED_METHODS);
         }}


查看完整回答
反對 回復(fù) 2019-08-12
  • 3 回答
  • 0 關(guān)注
  • 825 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號