Rumah >rangka kerja php >ThinkPHP >Cara thinkphp melengkapkan permintaan merentas domain

Cara thinkphp melengkapkan permintaan merentas domain

PHPz
PHPzke hadapan
2023-04-13 16:22:233369semak imbas

1. Kelas pengepala

Dalam rangka kerja thinkphp, anda boleh menggunakan kelas Pengepala untuk menetapkan pengepala respons untuk merealisasikan fungsi permintaan merentas domain. Kaedah khusus ialah menambah kod berikut pada kaedah pengawal:

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");

Antaranya, baris pertama kod bermaksud membenarkan permintaan merentas domain daripada semua sumber, dan juga boleh ditetapkan kepada sumber tertentu ; baris kedua kod bermaksud membenarkan maklumat pengepala Permintaan dibawa oleh permintaan merentas domain. Selepas menyediakan ini, anda boleh melaksanakan permintaan merentas domain asas.

2. Pustaka pihak ketiga

Selain menggunakan kelas Header untuk menyediakan permintaan merentas domain, anda juga boleh menggunakan perpustakaan pihak ketiga untuk memudahkan perkara ini proses. Berikut mengambil sambungan kors perpustakaan CORS (Perkongsian Sumber Silang Asal) sebagai contoh untuk memperkenalkan cara menggunakan pustaka pihak ketiga untuk melaksanakan permintaan merentas domain.

  1. Pasang sambungan cors

Buka tetingkap baris arahan dan laksanakan arahan berikut:

composer require topthink/think-cors
  1. Konfigurasikan sambungan cors

Dalam folder konfigurasi projek, cipta fail cors.php dan masukkan kod berikut:

<?php

return [
    // 允许的请求域名
    &#39;allow_origin&#39;      => [&#39;*&#39;],
    // 允许的请求头信息
    &#39;allow_headers&#39;     => &#39;Origin, X-Requested-With, Content-Type, Accept&#39;,
    // 允许的请求方法
    &#39;allow_methods&#39;     => &#39;GET, POST, PUT, DELETE, PATCH&#39;,
    // 是否允许发送cookie
    &#39;allow_credentials&#39; => true,
    // 跨域请求缓存时间
    &#39;max_age&#39;           => 3600,
];

Antaranya, $allow_origin bermaksud dibenarkan Nama domain permintaan boleh ditetapkan kepada nama domain tertentu atau kad bebas "*"; $allow_headers mewakili maklumat pengepala permintaan yang dibenarkan, $allow_methods mewakili kaedah permintaan yang dibenarkan, $allow_credentials mewakili sama ada kuki dibenarkan untuk dihantar , dan $max_age mewakili masa cache Permintaan merentas domain.

  1. Ubah suai fail konfigurasi

Dalam folder konfigurasi projek, cari fail app.php, konfigurasi adalah seperti berikut:

return [
    // ...
    &#39;middleware&#39; => [
        // ...
        \think\middleware\Cors::class,
    ],
];
  1. Panggil sambungan cors

Dalam kaedah pengawal yang memerlukan permintaan silang domain, anda boleh terus memanggil kaedah dalam sambungan cors ke merealisasikan tetapan permintaan merentas domain :

use think\facade\Cors;

public function index() {
    Cors::allowAllOrigin();
    return json([&#39;code&#39; => 200, &#39;msg&#39; => &#39;success&#39;]);
}

Selepas menetapkan ini, anda boleh melaksanakan permintaan merentas domain.

Atas ialah kandungan terperinci Cara thinkphp melengkapkan permintaan merentas domain. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam