Rumah > Artikel > rangka kerja php > Cara menggunakan perisian tengah untuk melaksanakan perkongsian sumber silang asal (CORS) dalam Laravel
Cara menggunakan middleware untuk melaksanakan perkongsian sumber silang asal (CORS) dalam Laravel
Ikhtisar:
#🎜 Perkongsian Sumber Domain silang (CORS) ialah mekanisme penyemak imbas yang membenarkan aplikasi web berkongsi sumber di bawah nama domain yang berbeza. Laravel, rangka kerja PHP yang popular, menyediakan cara mudah untuk mengendalikan CORS dengan menggunakan perisian tengah untuk mengendalikan permintaan merentas domain. Artikel ini akan memperkenalkan anda kepada cara menggunakan perisian tengah untuk melaksanakan CORS dalam Laravel, termasuk cara mengkonfigurasi perisian tengah, menetapkan nama domain yang dibenarkan dan kaedah permintaan serta menyediakan contoh kod khusus. Langkah 1: Cipta perisian tengah CORS Pertama, kita perlu mencipta perisian tengah untuk mengendalikan CORS. Gunakan arahan berikut dalam terminal untuk menjana fail middleware baharu: php artisan make:middleware CorsMiddlewareArahan ini akan berada dalamapp/Http/MiddlewareCorsMiddleware.php
dijana dalam direktori /code>. app/Http/Middleware
目录下生成一个名为CorsMiddleware.php
的文件。
打开CorsMiddleware.php
文件,修改handle
方法如下:
public function handle($request, Closure $next) { $response = $next($request); $response->header('Access-Control-Allow-Origin', '*'); $response->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); $response->header('Access-Control-Allow-Headers', 'Content-Type, Authorization'); return $response; }
在这个中间件中,我们设置了三个响应头,分别是:Access-Control-Allow-Origin
、Access-Control-Allow-Methods
和Access-Control-Allow-Headers
。Access-Control-Allow-Origin
允许所有源进行跨域访问,您也可以根据需要设置特定的域名。Access-Control-Allow-Methods
定义允许的请求方法,这里我们设置了常见的GET、POST、PUT、DELETE和OPTIONS。Access-Control-Allow-Headers
允许的请求头中包含了Content-Type和Authorization。
步骤二:注册CORS中间件
打开app/Http/Kernel.php
文件,找到$middleware
数组,并在数组中添加以下行代码:
protected $middleware = [ // ... AppHttpMiddlewareCorsMiddleware::class, ];
以上代码将添加CorsMiddleware
中间件到全局中间件堆栈中,以便它可以应用于每一个请求。
步骤三:使用CORS中间件
为了验证我们的CORS中间件是否有效,我们可以在一个API路由中使用它。在routes/api.php
文件中,添加一个GET路由,并为该路由使用CorsMiddleware
中间件:
Route::get('/test', function () { return response()->json(['message' => 'Hello World']); })->middleware('cors');
这个路由将返回一个包含"Hello World"消息的JSON响应。
步骤四:验证CORS设置
现在我们可以使用任何支持跨域访问的客户端,例如浏览器或REST客户端进行验证。在浏览器的开发工具中,我们可以看到响应的头部信息。
例如,在Chrome浏览器上,打开开发者工具,切换到"Network"选项卡,然后访问我们在步骤三中定义的路由/api/test
。在响应头部信息中,我们应该看到Access-Control-Allow-Origin
、Access-Control-Allow-Methods
和Access-Control-Allow-Headers
Buka fail CorsMiddleware.php
dan ubah suai kaedah handle
seperti berikut:
Dalam perisian tengah ini, kami set Terdapat tiga pengepala respons, iaitu: Access-Control-Allow-Origin
, Access-Control-Allow-Methods
dan Access-Control-Allow-Headers. <code>Access-Control-Allow-Origin
membenarkan akses merentas domain daripada semua sumber dan anda juga boleh menetapkan nama domain tertentu seperti yang diperlukan. Access-Control-Allow-Methods
mentakrifkan kaedah permintaan yang dibenarkan Di sini kami menetapkan GET, POST, PUT, DELETE dan OPTIONS biasa. Pengepala permintaan yang dibenarkan bagi Access-Control-Allow-Headers
termasuk Jenis Kandungan dan Keizinan.
Langkah 2: Daftar CORS middleware
Buka fail app/Http/Kernel.php
dan cari $middleware
tatasusunan dan tambah baris kod berikut dalam tatasusunan:
CorsMiddleware
middleware pada tindanan middleware global supaya ia boleh digunakan pada setiap permintaan . #🎜🎜##🎜🎜#Langkah 3: Gunakan perisian tengah CORS #🎜🎜##🎜🎜# Untuk mengesahkan sama ada perisian tengah CORS kami sah, kami boleh menggunakannya dalam laluan API. Dalam fail routes/api.php
, tambahkan laluan GET dan gunakan perisian tengah CorsMiddleware
untuk laluan ini: #🎜🎜#rrreee#🎜🎜#Laluan ini akan mengembalikan A Respons JSON yang mengandungi mesej "Hello World". #🎜🎜##🎜🎜#Langkah 4: Sahkan tetapan CORS #🎜🎜##🎜🎜#Kini kami boleh menggunakan mana-mana pelanggan yang menyokong akses merentas domain, seperti penyemak imbas atau klien REST untuk pengesahan. Dalam alat pembangunan penyemak imbas, kita boleh melihat maklumat pengepala respons. #🎜🎜##🎜🎜#Sebagai contoh, pada penyemak imbas Chrome, buka alat pembangun, tukar ke tab "Rangkaian", dan kemudian akses laluan yang kami takrifkan dalam langkah tiga: /api/test
. Dalam pengepala respons, kita harus melihat Access-Control-Allow-Origin
, Access-Control-Allow-Methods
dan Access-Control-Allow- Headers kod> tetapan. #🎜🎜##🎜🎜#Jika semuanya baik-baik saja, anda sepatutnya boleh menghantar permintaan HTTP daripada nama domain yang berbeza dan mendapat respons dengan jayanya. #🎜🎜##🎜🎜#Kesimpulan: #🎜🎜##🎜🎜# Dengan menggunakan perisian tengah, rangka kerja Laravel menyediakan cara mudah untuk mencapai perkongsian sumber merentas domain. Artikel ini memperincikan cara membuat perisian tengah CORS, mendaftar perisian tengah dan menggunakan perisian tengah untuk mengendalikan permintaan merentas domain. Harap artikel ini dapat membantu anda melaksanakan CORS dalam Laravel dan menyediakan contoh kod yang mencukupi untuk rujukan anda. #🎜🎜#
Atas ialah kandungan terperinci Cara menggunakan perisian tengah untuk melaksanakan perkongsian sumber silang asal (CORS) dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!