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.
bahagian belakang menyelesaikan merentas domain, terutamanya dengan bantuan kor
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
tetapi nilai lalainya ialah *, yang bermaksud semua dibenarkan secara lalai, yang tidak begitu selamat secara teori
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
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! ! !
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!