Bagaimana untuk mengendalikan permintaan merentas domain dalam pembangunan fungsi backend Java?
Dalam mod pembangunan di mana bahagian hadapan dan bahagian belakang dipisahkan, ia adalah senario yang sangat biasa untuk bahagian hadapan untuk menghantar permintaan ke antara muka API bahagian belakang untuk mendapatkan data melalui JavaScript. Walau bagaimanapun, disebabkan dasar asal yang sama penyemak imbas, terdapat sekatan pada permintaan merentas domain. Permintaan merentas domain bermakna halaman akhir hadapan meminta pelayan dengan nama domain yang berbeza, port yang berbeza atau protokol yang berbeza melalui AJAX dan kaedah lain. Artikel ini akan memperkenalkan kaedah biasa untuk mengendalikan permintaan merentas domain dalam pembangunan fungsi back-end Java, dengan contoh kod.
Cara biasa untuk menyelesaikan masalah merentas domain adalah dengan membuat konfigurasi yang sepadan pada bahagian belakang. Yang berikut menggunakan rangka kerja Spring Boot sebagai contoh untuk memperkenalkan cara mengendalikan permintaan merentas domain.
Tambah anotasi CrossOrigin pada kaedah Pengawal bahagian belakang ini digunakan untuk mengkonfigurasi nama domain, kaedah permintaan dan parameter lain yang berkaitan yang membenarkan merentas domain. Berikut ialah contoh:
@RestController @RequestMapping("/api") @CrossOrigin(origins = "http://frontend.com", methods = {RequestMethod.GET, RequestMethod.POST}) public class MyController { // Controller方法... }
Dalam kod di atas, anotasi @CrossOrigin menentukan bahawa nama domain http://frontend.com dibenarkan untuk memulakan permintaan GET dan POST. Anda boleh mengubah suai parameter ini mengikut keperluan anda.
Melalui fail konfigurasi, pemprosesan permintaan merentas domain global boleh dicapai. Tambahkan konfigurasi berikut pada fail konfigurasi projek Spring Boot (seperti application.properties):
spring.webmvc.cors.allowed-origins=*
Kod di atas menunjukkan bahawa semua nama domain dibenarkan untuk memulakan permintaan merentas domain. Anda juga boleh menentukan nama domain tertentu, seperti:
spring.webmvc.cors.allowed-origins=http://frontend1.com,http://frontend2.com
Selain daripada dua kaedah di atas, anda juga boleh menggunakan Penapis untuk mengendalikan permintaan merentas domain. Buat kelas yang melaksanakan antara muka Penapis, dan kemudian tambah logik pemprosesan silang domain dalam kaedah doFilter. Berikut ialah contoh:
@Component public class CorsFilter implements Filter { @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) res; response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization, X-Requested-With"); chain.doFilter(req, res); } }
Dalam kod di atas, konfigurasi untuk membenarkan permintaan merentas domain dilaksanakan dengan menetapkan pengepala respons.
Ringkasnya, terdapat banyak cara untuk mengendalikan permintaan merentas domain dalam pembangunan fungsi backend Java. Pilih sahaja kaedah yang sesuai mengikut keperluan sebenar. Di atas menyediakan kod sampel untuk menggunakan anotasi CrossOrigin, mengkonfigurasi konfigurasi merentas domain global Spring Boot dan menggunakan Penapis untuk mengendalikan permintaan merentas domain. Saya harap ia akan membantu anda dengan isu merentas domain semasa pembangunan.
Atas ialah kandungan terperinci Bagaimana untuk mengendalikan permintaan merentas domain dalam pembangunan fungsi backend Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!