Maison  >  Article  >  interface Web  >  Comment implémenter js pour prendre en charge les demandes de publication inter-domaines

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

php中世界最好的语言
php中世界最好的语言original
2018-05-07 17:05:121524parcourir

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);
  }
});

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 . ")";

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;

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);
  }
});

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!

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