Maison > interface Web > js tutoriel > le corps du texte

Comment implémenter js pour prendre en charge les demandes de publication inter-domaines

php中世界最好的语言
Libérer: 2018-05-07 17:05:12
original
1532 Les gens l'ont consulté

Cette fois, je vais vous montrer comment implémenter la prise en charge de js pour les demandes de publication dans tous les domaines. Quelles sont les précautions pour implémenter js pour prendre en charge les demandes de publication dans tous les domaines ? . Jetons un coup d'oeil.

JSONP implémente des appels inter-domaines

Jquery couramment utilisé implémente des appels inter-domaines

$.ajax({
  url: "http://127.0.0.1/~chenjiebin/mycode/php/crossdomain/index.php",
  dataType: "jsonp",
  jsonp: "callback",
  context: document.body,
  success: function(data) {
    console.log(data);
  }
});
Copier après la connexion

Le principe d'implémentation réel de cet appel est de
construire une balise de script dans la page Web, définissez src sur l'url correspondante et ajoutez le paramètre de rappel correspondant, au format suivant :

Le code du serveur demandé est le suivant :

$data   = json_encode(array("id" => "1", "name" => "tom"));
$callback = $_GET["callback"];
echo $callback . "(" . $data . ")";
Copier après la connexion

en fait renvoie le dernier Le contenu est un morceau de code js :

jQuery211018970995225637144_1465350372062({"id":"1","name":"tom"})

Quand le navigateur obtient Cette fonction sera exécutée après ce code js, réalisant ainsi la méthode de réussite définie lors du rappel de la requête ajax.

Inconvénients de l'implémentation de jsonp

Après avoir compris le principe, vous savez que la méthode inter-domaines d'implémentation de jsonp ne prend pas en charge les demandes de publication et ne peut prendre en charge que les demandes d'obtention. Mais que se passe-t-il si vous devez prendre en charge des demandes de publication ? Parlons des paramètres côté serveur.

Les paramètres du serveur prennent en charge plusieurs domaines

Principalement le paramètre d'en-tête Access-Control-Allow-Origin, qui est utilisé pour spécifier quelle origine des requêtes de domaine est autorisée. Le code du serveur est le suivant :

// 表示支持所有来源的域进行请求
// 实际在操作过程中可以设置为指定域
header('Access-Control-Allow-Origin:*');
$data = json_encode(array("id" => "1", "name" => "tom"));
echo $data;
Copier après la connexion

Le code js correspondant :

$.ajax({
  type: "POST",
  url: "http://127.0.0.1/~chenjiebin/mycode/php/crossdomain/header.php",
  dataType: "json",
  success: function(data) {
    console.log(data);
  }
});
Copier après la connexion

peut prendre en charge les demandes de publication.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Cela indique l'utilisation de call et apply

Lorsque webpack+myproject construit le projet, l'adresse IP ne peut pas accéder à l'application. Comment gérer

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal