Maison > développement back-end > tutoriel php > Comment JSONP avec jQuery et PHP peut-il résoudre les problèmes de requêtes multi-origines ?

Comment JSONP avec jQuery et PHP peut-il résoudre les problèmes de requêtes multi-origines ?

Barbara Streisand
Libérer: 2024-12-08 07:13:14
original
653 Les gens l'ont consulté

How Can JSONP with jQuery and PHP Solve Cross-Origin Request Issues?

Requêtes d'origine croisée avec JSONP : un exemple simple de jQuery et PHP

Dans cet exemple, nous aborderons le défi du cross- requêtes d'origine utilisant JSONP, une technique élégante qui permet la communication entre JavaScript et des serveurs Web de différents domaines.

Imaginons que vous souhaitiez pour envoyer une requête cross-origin depuis un client jQuery vers un serveur PHP et récupérer une réponse personnalisée. Pour y parvenir, nous utiliserons la méthode $.getJSON de jQuery pour lancer une requête JSONP.

Script jQuery :

$.getJSON('http://example.com/jsonp.php?callback=?', 'firstname=Jeff', function(response) {
  alert('Your name is ' + response.fullname);
});
Copier après la connexion

Serveur PHP Script :

<?php
$firstname = $_GET['firstname'];
if ($firstname == 'Jeff') {
  header('Content-Type: application/json');
  echo $_GET['callback'] . '(' . json_encode(['fullname' => 'Jeff Hansen']) . ')';
}
?>
Copier après la connexion

Explication :

Lorsque vous appelez $.getJSON avec une URL contenant '?callback=?', jQuery gère automatiquement le JSONP demande. Le script PHP côté serveur répond avec un objet JSON enveloppé dans un appel de fonction qui correspond au rappel fourni par jQuery. Dans ce cas, le rappel est passé comme premier paramètre dans la requête GET.

Gestion des réponses HTML :

Si vous souhaitez renvoyer du HTML dans la réponse , vous pouvez utiliser une fonction à la place d'un objet JSON au sein du script PHP :

<?php
$firstname = $_GET['firstname'];
if ($firstname == 'Jeff') {
  header('Content-Type: text/html');
  echo '<h1>Welcome, Jeff Hansen!</h1>';
}
?>
Copier après la connexion

Et côté jQuery, vous pouvez gérer la réponse comme tel :

$.getJSON('http://example.com/jsonp.php?callback=?', 'firstname=Jeff', function(response) {
  $('#container').html(response);
});
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal