Rumah >Java >javaTutorial >Cara SpringBoot melaksanakan rentas domain global dan tempatan

Cara SpringBoot melaksanakan rentas domain global dan tempatan

王林
王林ke hadapan
2023-05-14 23:16:14965semak imbas

Apakah itu merentas domain

Permintaan merentas domain yang dipanggil bermaksud: domain tempat permintaan dimulakan pada masa ini berbeza daripada domain tempat sumber yang ditunjuk oleh permintaan itu berada. Domain di sini merujuk kepada konsep: Kami percaya bahawa jika protokol + nama domain + nombor port adalah sama, maka ia adalah domain yang sama.

Selesaikan merentas domain

bahagian belakang menyelesaikan merentas domain, terutamanya dengan bantuan kor

Penyelesaian separa (menggunakan anotasi)

Anda boleh menggunakan anotasi: @CrossOrigin

Selepas anotasi ini dihidupkan, ia boleh menyelesaikan masalah merentas domain Ia boleh ditambahkan pada pengawal Di permukaan, semua kaedah dalam pengawal telah melalui domain silang pemprosesan. Ia juga boleh ditambahkan pada kaedah sahaja untuk menunjukkan bahawa kaedah ini telah diproses merentas domain

Cara SpringBoot melaksanakan rentas domain global dan tempatan

tetapi nilai lalainya ialah *, yang bermaksud semua dibenarkan secara lalai, yang tidak begitu selamat secara teori

Cara SpringBoot melaksanakan rentas domain global dan tempatan

Jika terdapat berbilang pengawal atau kaedah dalam projek, penggunaan anotasi akan menjadi sangat sia-sia mereka satu demi satu terlalu menyusahkan, maka anda boleh menggunakan anotasi global

Penyelesaian global

Prinsip: Buat kelas konfigurasi, dayakan pendaftaran merentas domain dan gunakan anotasi @Configuration untuk menyuntik kelas ini ke dalam projek sebagai konfigurasi

Kami boleh mengkonfigurasi kaedah permintaan secara bebas, serta kebenaran nama domain, masa permintaan dan kawalan yang lebih terperinci bagi skop merentas domain

package com.wyh.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @Description: 解决全局跨域
 * @Author: 魏一鹤
 * @Date: 2022-11-30 22:44
 **/

@Configuration
public class CorsMapping implements WebMvcConfigurer {

    @Override
    /**
     * 重新跨域支持方法
     * CorsRegistry  开启跨域注册
     */
    public void addCorsMappings(CorsRegistry registry) {
        //addMapping 添加可跨域的请求地址
        registry.addMapping("/**")
                //设置跨域 域名权限 规定由某一个指定的域名+端口能访问跨域项目
                .allowedOrigins("*")
                //是否开启cookie跨域
                .allowCredentials(false)
                //规定能够跨域访问的方法类型
                .allowedMethods("GET","POST","DELETE","PUT","OPTIONS")
                //添加验证头信息  token
                //.allowedHeaders()
                //预检请求存活时间 在此期间不再次发送预检请求
                .maxAge(3600);
    }
}

Nota: Jangan lupa anotasi @Configuration, jika tidak konfigurasi akan menjadi tidak sah! ! !

Cara SpringBoot melaksanakan rentas domain global dan tempatan

Atas ialah kandungan terperinci Cara SpringBoot melaksanakan rentas domain global dan tempatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam