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
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!