Maison >développement back-end >tutoriel php >Comment surmonter la communication JSON inter-domaines avec JSONP ?

Comment surmonter la communication JSON inter-domaines avec JSONP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-22 14:42:50809parcourir

How to Overcome Cross-Domain JSON Communication with JSONP?

JSONP : activation de la communication JSON inter-domaines

La communication JSON inter-domaines pose un défi en raison de la politique de même origine. JSONP (JSON with Padding) a été introduit comme solution à ce problème.

Création d'une API de rappel JSONP

Pour créer une API de rappel JSONP, vous devez :

  1. Accepter un paramètre de rappel : Acceptez un paramètre "callback" dans la requête GET.
  2. Encapsuler les données dans une fonction de rappel : Surround vos données JSON avec la fonction de rappel spécifiée dans le paramètre de requête.

Exemple en PHP :

<code class="php"><?php
$data = '{}';

if (array_key_exists('callback', $_GET)) {
    header('Content-Type: text/javascript; charset=utf8');
    header('Access-Control-Allow-Origin: http://www.example.com/');
    $callback = $_GET['callback'];
    echo $callback . '(' . $data . ');';
} else {
    header('Content-Type: application/json; charset=utf8');
    echo $data;
}
?></code>

Ce code envoie un fichier JavaScript qui appelle le fonction de rappel spécifiée avec les données JSON comme premier argument.

Utilisation du service JSONP

Pour utiliser le service JSONP :

  1. Définissez une fonction de rappel : Créez une fonction JavaScript pour traiter les données JSON.
  2. Incluez le script du service JSONP : Insérez un