Maison  >  Article  >  développement back-end  >  Comment implémenter le rappel JSONP pour JavaScript inter-domaines ?

Comment implémenter le rappel JSONP pour JavaScript inter-domaines ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-22 15:41:02404parcourir

How to Implement JSONP Callback for Cross-Domain JavaScript?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn