Maison >développement back-end >tutoriel php >Comment implémenter le rappel JSONP pour JavaScript inter-domaines ?
Implémentation de rappel JSONP pour JavaScript inter-domaines
Afin de faciliter la communication entre différents domaines, JSONP (JSON with Padding) a été introduit. Cette technique implique la création d'une fonction de rappel qui peut être utilisée pour envelopper les données JSON et les rendre accessibles depuis un domaine différent. Voici comment implémenter JSONP en PHP :
Accepter le paramètre de rappel
Tout d'abord, dans la requête GET, nous acceptons un paramètre appelé "callback":
<code class="php">if(array_key_exists('callback', $_GET)){ ... }</code>
Enveloppement de la fonction de rappel
Ensuite, nous enveloppons la fonction JavaScript de rappel autour de nos données. Par exemple :
<code class="php">$callback = $_GET['callback']; echo $callback.'('.$data.');';</code>
Exemple PHP
Voici un exemple en PHP :
<code class="php"><?php $data = '{}'; // json string if(array_key_exists('callback', $_GET)){ header('Content-Type: text/javascript; charset=utf8'); header('Access-Control-Allow-Origin: http://www.example.com/'); header('Access-Control-Max-Age: 3628800'); header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); $callback = $_GET['callback']; echo $callback.'('.$data.');'; }else{ // normal JSON string header('Content-Type: application/json; charset=utf8'); echo $data; } ?></code>
Utilisation de JavaScript
Pour utiliser le service JSONP, vous pouvez utiliser la balise de script :
<code class="html"><script> function receiver(data){ console.log(data); } </script> <script src="data-service.php?callback=receiver"></script></code>
Explication du concept
L'idée principale derrière JSONP est de renvoyer un Fichier JavaScript qui appelle la fonction de rappel et fournit l'objet JSON comme premier paramètre. La fonction json_encode() de PHP peut être utilisée pour convertir des tableaux et des objets en chaînes JSON.
En utilisant JSONP, vous pouvez établir une communication entre des scripts de différents domaines, en contournant efficacement les limitations de la politique de même origine et en activant les données. échanger entre 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!