Maison > Article > développement back-end > Comment l'API gère les requêtes JSONP et intersites en PHP
Alors que de plus en plus d'applications Web commencent à prendre en charge les requêtes intersites et la technologie JSONP, les concepteurs d'API en PHP doivent réfléchir à la manière de gérer ces requêtes. Dans cet article, nous explorerons comment gérer les requêtes JSONP et intersites en PHP.
Tout d’abord, jetons un coup d’œil à JSONP. JSONP (JSON with Padding) est une technologie qui permet des requêtes de données inter-domaines entre clients et serveurs. Pour ce faire, il utilise du code JavaScript pour créer dynamiquement une balise 3f1c4e4b6b16bbbd69b2ee476dc4f83a dont l'attribut src est une URL pointant vers une API qui renverra une réponse JSONP.
Afin de prendre en charge JSONP, nous devons ajouter du code à l'API. Tout d'abord, nous devons vérifier si la requête API est accompagnée d'un paramètre "callback", qui précise le nom de la fonction de rappel à exécuter sur le client. Si ce paramètre existe, nous devons utiliser la fonction de rappel dans la réponse pour envelopper la réponse JSON. De cette façon, le code JavaScript côté client peut facilement lire et traiter la réponse sans se soucier des restrictions inter-domaines.
Ce qui suit est un exemple de code PHP qui montre comment prendre en charge JSONP :
<?php $data = array('name' => 'John', 'age' => 30); $json = json_encode($data); if(isset($_GET['callback'])){ echo $_GET['callback'] . '(' . $json . ')'; } else { echo $json; } ?>
Dans l'exemple ci-dessus, si la requête API contient le paramètre "callback", une réponse JSONP est renvoyée, sinon, une réponse JSON est renvoyée.
Voyons maintenant comment gérer les requêtes intersites. Le partage de ressources cross-origine (CORS) est une technologie qui permet des requêtes inter-domaines entre le navigateur client et le serveur. En utilisant CORS, nous pouvons demander au code JavaScript côté client de récupérer les données de l'API d'un autre domaine sans avoir besoin d'un serveur proxy ou d'autres solutions.
Activer CORS en PHP est simple, il suffit d'ajouter quelques informations à l'en-tête de réponse. Par exemple :
<?php header("Access-Control-Allow-Origin: *"); //允许所有域名 header("Access-Control-Allow-Methods: GET, POST"); //允许的HTTP方法 header("Access-Control-Allow-Headers: Content-Type"); //允许客户端发送的Header ?>
Dans l'exemple ci-dessus, nous activons CORS en ajoutant "Access-Control-Allow-Origin", "Access-Control-Allow-Methods" et "Access-Control-Allow-Headers" dans l'en-tête de réponse. De cette manière, le client peut obtenir des données de n'importe quel nom de domaine, tandis que la méthode HTTP et l'en-tête sont également restreints.
En résumé, les concepteurs d'API en PHP doivent réfléchir à la manière de prendre en charge JSONP et CORS afin que le code JavaScript côté client puisse obtenir des données d'autres noms de domaine. JSONP et CORS fournissent tous deux une méthode de requête intersite sûre et fiable et peuvent rendre le code client plus flexible, plus facile à développer et à maintenir.
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!