Maison > interface Web > js tutoriel > Comment jQuery AJAX peut-il surmonter les restrictions des politiques de même origine pour la communication entre domaines ?

Comment jQuery AJAX peut-il surmonter les restrictions des politiques de même origine pour la communication entre domaines ?

Mary-Kate Olsen
Libérer: 2024-12-22 22:23:18
original
187 Les gens l'ont consulté

How Can jQuery AJAX Overcome Same-Origin Policy Restrictions for Cross-Domain Communication?

Communication inter-domaines jQuery AJAX

Les requêtes AJAX inter-domaines rencontrent des limitations en raison des restrictions de la politique de même origine. Lorsqu'un script client sur un domaine tente d'accéder aux ressources d'un domaine différent, il échoue généralement en raison de problèmes de sécurité.

Cas :

Considérez le cas où test. php réside sur un hôte local, tandis que testserver.php est hébergé sur un serveur Web. Une requête AJAX de test.php à testserver.php échouera, déclenchant une alerte « Erreur » en raison de la nature inter-domaines de la requête.

Solution :

Pour surmonter cette limitation, JSONP (JSON with Padding) peut être employé.

jQuery :

$.ajax({
  url: "testserver.php",
  dataType: "jsonp", // Note the lowercase 'p' in JSONP
  success: function (json) {
    // Handle successful response
    alert("Success");
  },
  error: function () {
    alert("Error");
  }
});
Copier après la connexion

PHP :

<?php
$arr = array("element1", "element2", array("element31", "element32"));
$arr['name'] = "response";
echo $_GET['callback'] . "(" . json_encode($arr) . ");";
?>
Copier après la connexion

En PHP, le nom de la fonction de rappel est passé par jQuery est disponible via $_GET['callback']. En faisant écho à une réponse au format "callbackName('jsonString')", nous permettons à jQuery d'interpréter les données JSON.

Alternative :

jQuery fournit une méthode abrégée appelé $.getJSON() qui simplifie les requêtes AJAX inter-domaines. Cependant, cela nécessite d'ajouter "callback=?" à l'URL en tant que paramètre GET. jQuery remplace automatiquement cet espace réservé par sa méthode de rappel générée.

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