Springboot CORSクロスドメインアクセス

Springboot CORSクロスドメインアクセス

クロスドメインとは何ですか

起源ポリシーの制限ブラウザ:それは同一生成元ポリシーの欠如は、ブラウザの通常の機能が影響を受ける可能性がある場合は、ブラウザのコアは、また、最も基本的なセキュリティ機能です。ウェブは、同一生成元ポリシーに基づいて構築されると言うことができますが、ブラウザが実現元ポリシーに向けられています。元ポリシーは、別のドメインの相互作用にドメインJavaScriptのスクリプトとコンテンツを防ぐことができます。いわゆる相同(同一でドメインを参照)は、2つのページが同じプロトコル(プロトコル)、ホスト(ホスト)とポート番号(ポート)を有しています

URLリクエストすると、プロトコル、ドメイン名、ポート三つの異なるクロスドメインのいずれかとの間には、現在のページのURLは、

例えば:

現在のページのURL 要求されたページのURL クロスドメインかどうか** 理由
http://www.test.com/ http://www.test.com/index.html ノー 相同(プロトコル名、同じポート番号)
http://www.test.com/ https://www.test.com/index.html クロスドメイン 異なるプロトコル(HTTP / HTTPS)
http://www.test.com/ http://www.baidu.com/ クロスドメイン プライマリドメイン名の異なる(テスト/百度)
http://www.test.com/ http://blog.test.com/ クロスドメイン 異なるサブドメイン(WWW /ブログ)
http://www.test.com:8080/ http://www.test.com:7001/ クロスドメイン 異なるポート番号(7001分の8080)

クロスドメインの制限

[1]クッキー、のlocalStorageとのIndexedDBの非相同ページを読むことができません

[2]非相同ページのDOMへのアクセスなし

[3]は、アドレスの非相同的にAJAXリクエストを送信することはできません。

CORSベースSpringbootビルド、クロスドメインアクセス

クロスドメイン・リソース・サーバを構築するためのベースSpringBoootプロジェクトは、Ajaxリクエストへのアクセスの外に立つことができます。

この方法の一つ:

各コントローラに追加@CrossOrigin

前記@CrossOrigin 2つのパラメータ:

起源:ドメインのリストにアクセスできるように

MAXAGE:(秒)の応答の前に最大時間をキャッシュする準備が整いました。

@CrossOrigin追加されません。

@RestController
@RequestMapping("/test")
public class TestRequestLogController {

    @RequestMapping("/request_log")
    public String TestRequestLog(@RequestParam String name){
        return "hello " + name;
    }
}

ファイル

プラス@CrossOrigin:

ファイル

方法2:

@Configuration
public class CorsConfig {
    private CorsConfiguration corsConfiguration(){
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedHeader("*");
        corsConfiguration.addAllowedMethod(HttpMethod.GET);
        corsConfiguration.addAllowedMethod(HttpMethod.POST);
        corsConfiguration.addAllowedOrigin("*");
        return corsConfiguration;
    }

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
        urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration());
        return new CorsFilter(urlBasedCorsConfigurationSource);
    }
}

ファイル

おすすめ

転載: www.cnblogs.com/undefined22/p/12603553.html