Dalam pembangunan web, permintaan merentas domain adalah masalah biasa. Ini kerana penyemak imbas mempunyai sekatan ketat terhadap permintaan antara nama domain yang berbeza. Contohnya, kod bahagian hadapan tapak web A tidak boleh menghantar permintaan terus ke API tapak web B melainkan tapak web B membenarkan permintaan merentas domain. Untuk menyelesaikan masalah ini, teknologi CORS (Cross-Origin Resource Sharing) muncul. Artikel ini akan memperkenalkan cara menggunakan permintaan merentas domain CORS dalam rangka kerja PHP-Slim.
1. Apakah itu CORS
CORS ialah mekanisme yang memberitahu penyemak imbas permintaan yang dibuatnya apabila ia menghantar permintaan merentas domain dengan menambahkan beberapa maklumat tambahan pada pengepala HTTP yang sepadan adalah dibenarkan . Biasanya, penyemak imbas akan menghantar permintaan OPTIONS apabila menghantar permintaan merentas domain untuk memahami permintaan yang dibenarkan. Pelayan perlu membalas permintaan ini dan memberitahu penyemak imbas dalam pengepala respons permintaan yang dibenarkan.
2. Menggunakan CORS dalam rangka kerja PHP-Slim
Rangka kerja PHP-Slim ialah rangka kerja PHP ringan yang digunakan untuk membina API RESTful. Di bawah ini kami akan memperkenalkan cara menggunakan permintaan merentas domain CORS dalam rangka kerja PHP-Slim.
Untuk menggunakan CORS, anda perlu memasang middleware yang dipanggil slim-cors dalam rangka kerja PHP-Slim ini boleh digunakan Kami tambah tajuk respons dengan mudah.
Kami boleh menggunakan komposer untuk memasang perisian tengah slim-cors, cuma jalankan arahan berikut:
composer require tuupola/slim-cors:^1.1
Ini akan menambah perisian tengah slim-cors pada projek kami.
Mendaftarkan middleware CORS dalam aplikasi Slim kami adalah sangat mudah. Kami hanya perlu mendaftarkannya sebagai perisian tengah dalam aplikasi.
Pertama, kita perlu memperkenalkan middleware CORS:
use TuupolaMiddlewareCorsMiddleware;
Kemudian, kita perlu mendaftarkannya sebagai middleware aplikasi:
$app->add(new CorsMiddleware([ "origin" => ["*"], "allowMethods" => ["GET", "POST", "PUT", "PATCH", "DELETE"], "allowHeaders" => ["Content-Type", "Authorization"] ]));
Dalam kod di atas, Kami menambah perisian tengah CORS pada aplikasi Slim kami dan tetapkan beberapa pilihan. Dalam contoh di atas, kami membenarkan permintaan daripada mana-mana asal dan hanya membenarkan permintaan dengan kaedah GET, POST, PUT, PATCH dan DELETE dan membenarkan dua pengepala permintaan Jenis Kandungan dan Keizinan. Anda boleh mengubah suai pilihan ini mengikut keperluan anda.
Kini, kami telah mencipta aplikasi Slim yang boleh mengendalikan CORS.
Selepas kami melengkapkan langkah di atas, pelanggan boleh menghantar permintaan merentas domain ke API kami. Permintaan klien akan membawa pengepala Origin dan pengepala respons yang kami kembalikan akan mengandungi pengepala Access-Control-Allow-Origin. Sebagai contoh, berikut ialah contoh permintaan POST menggunakan jQuery:
$.ajax({ method: 'POST', url: 'https://example.com/api', data: { name: 'John Doe' }, success: function(response) { console.log(response); } });
Jika pelayan kami telah mengendalikan permintaan CORS dengan betul, maka permintaan ini akan berjaya dilaksanakan.
Ringkasan:
Sangat mudah untuk menggunakan permintaan merentas domain CORS dalam rangka kerja PHP-Slim. Hanya gunakan perisian tengah slim-cors dan sediakannya mengikut keperluan anda. Ini membolehkan API kami menskalakan kepada aplikasi, peranti dan platform yang berbeza.
Walau bagaimanapun, perlu diingat bahawa CORS hanya terpakai pada dasar keselamatan pelayar web. Jika API anda tidak perlu diakses oleh penyemak imbas web, adalah disyorkan untuk menggunakan teknologi merentas domain lain yang lebih mudah dan cekap.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan permintaan merentas domain CORS dalam rangka kerja PHP-Slim?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!