Maison  >  Article  >  interface Web  >  Résumé des méthodes inter-domaines js qui prennent en charge les demandes de publication

Résumé des méthodes inter-domaines js qui prennent en charge les demandes de publication

php中世界最好的语言
php中世界最好的语言original
2018-05-23 14:54:431216parcourir

Cette fois, je vais vous apporter un résumé des méthodes inter-domaines js qui prennent en charge les demandes de publication, et quelles sont les notes qui prennent en charge les demandes de publication pour les domaines inter-domaines js. Voici un cas pratique. 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 :

Quelles sont les façons d'utiliser js (avec code)

Comment introduire dynamiquement des fichiers JS

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