Rumah > Java > javaTutorial > teks badan

Bagaimana untuk mengendalikan permintaan merentas domain dalam pembangunan fungsi backend Java?

WBOY
Lepaskan: 2023-08-05 09:40:45
asal
965 orang telah melayarinya

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.

  1. Tambah anotasi CrossOrigin

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方法...
}
Salin selepas log masuk

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.

  1. Konfigurasikan konfigurasi merentas domain global Spring Boot

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=*
Salin selepas log masuk

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
Salin selepas log masuk
  1. Gunakan Penapis untuk mengendalikan permintaan merentas domain

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);
    }
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan