Avec la popularité du développement de séparation front-end et back-end, les requêtes inter-domaines sont devenues une exigence de plus en plus courante. Lors du développement à l'aide du framework thinkphp, comment implémenter des méthodes de contrôleur d'arrière-plan de requêtes inter-domaines ? Cet article explique comment utiliser la classe Header et les bibliothèques tierces fournies avec le framework thinkphp pour traiter des requêtes inter-domaines.
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.
Ouvrez la fenêtre de ligne de commande et exécutez la commande suivante :
composer require topthink/think-cors
Dans le dossier de configuration du projet, créez un fichier cors.php et entrez le code suivant :
<?php return [ // 允许的请求域名 'allow_origin' => ['*'], // 允许的请求头信息 'allow_headers' => 'Origin, X-Requested-With, Content-Type, Accept', // 允许的请求方法 'allow_methods' => 'GET, POST, PUT, DELETE, PATCH', // 是否允许发送cookie 'allow_credentials' => true, // 跨域请求缓存时间 'max_age' => 3600, ];
Parmi eux, $allow_origin représente le nom de domaine de requête 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 requête autorisées, $allow_methods représente les méthodes de requête autorisées et $allow_credentials indique si l'envoi de cookies est autorisé, $max_age représente le temps de cache des requêtes inter-domaines.
Dans le dossier config du projet, recherchez le fichier app.php, la configuration est la suivante :
return [ // ... 'middleware' => [ // ... \think\middleware\Cors::class, ], ];
Dans la méthode du contrôleur qui nécessite du cross-domain requêtes, vous pouvez l'appeler directement Méthodes dans l'extension cors pour implémenter les paramètres de requêtes inter-domaines :
use think\facade\Cors; public function index() { Cors::allowAllOrigin(); return json(['code' => 200, 'msg' => 'success']); }
Après avoir configuré de cette manière, les requêtes inter-domaines peuvent être implémentées.
En résumé, pour implémenter la méthode de contrôleur d'arrière-plan de requêtes inter-domaines du framework thinkphp, vous pouvez utiliser la classe Header ou une bibliothèque tierce. Utilisez la classe Header pour définir manuellement les informations d'en-tête de réponse et utilisez des bibliothèques tierces pour simplifier le processus de configuration. La méthode de mise en œuvre spécifique peut être choisie en fonction de vos propres besoins.
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!