Maison  >  Article  >  cadre php  >  Comment thinkphp traite les requêtes inter-domaines

Comment thinkphp traite les requêtes inter-domaines

PHPz
PHPzavant
2023-04-13 16:22:233280parcourir

1. Classe Header

Dans le framework thinkphp, vous pouvez utiliser la classe Header pour définir l'en-tête de réponse afin d'implémenter les fonctions de requête inter-domaines. La méthode spécifique consiste à ajouter le code suivant à la méthode du contrôleur :

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

Parmi eux, la première ligne de code indique que les requêtes inter-domaines provenant de toutes les sources sont autorisées, et peuvent également être définies sur une source spécifique ; du code indique que les requêtes portées par les requêtes inter-domaines sont autorisées. Après avoir configuré cela, vous pouvez implémenter des requêtes inter-domaines de base.

2. Bibliothèques tierces

En plus d'utiliser la classe Header pour configurer des requêtes inter-domaines, vous pouvez également utiliser des bibliothèques tierces pour simplifier ce processus. Ce qui suit prend l'extension cors de la bibliothèque CORS (Cross-Origin Resource Sharing) grand public comme exemple pour présenter comment utiliser une bibliothèque tierce pour implémenter des requêtes inter-domaines.

  1. Installer l'extension cors

Ouvrez la fenêtre de ligne de commande et exécutez la commande suivante :

composer require topthink/think-cors
  1. Configurer l'extension cors

Dans le dossier de configuration du projet, créez un fichier cors.php et entrez le code suivant:

<?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,
];

Parmi eux, $allow_origin représente le nom de domaine de demande autorisé, qui peut être défini sur un nom de domaine spécifique ou le caractère générique "*" $allow_headers représente les informations d'en-tête de demande autorisées, $allow_methods représente les informations autorisées méthodes de requête, et $allow_credentials représente s'il faut autoriser l'envoi de cookies, $max_age indique le temps de cache des requêtes inter-domaines.

  1. Modifier le fichier de configuration

Dans le dossier config du projet, recherchez le fichier app.php, la configuration est la suivante :

return [
    // ...
    &#39;middleware&#39; => [
        // ...
        \think\middleware\Cors::class,
    ],
];
  1. Appeler l'extension cors

Dans la méthode du contrôleur qui nécessite des requêtes inter-domaines , vous pouvez appeler directement la méthode dans l'extension cors pour réaliser le paramétrage des requêtes inter-domaines :

use think\facade\Cors;

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

Après avoir configuré de cette manière, vous pouvez réaliser des requêtes inter-domaines.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer