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

Solution post-cross-domaine Jsonp

高洛峰
Libérer: 2017-01-12 09:59:41
original
1011 Les gens l'ont consulté

Récemment, j'ai rencontré un tel problème dans le projet. Concernant le problème inter-domaines jsonp, la valeur get est OK, mais la valeur post ne l'est pas. J'ai donc lu beaucoup d'informations à ce sujet sur Internet, et enfin le. le problème a été résolu. Résolu, je prendrai le temps de le partager avec vous aujourd'hui.

Remarque :
http://www.t1.com/index.php URL du serveur
Bien sûr, il s'agit de ma configuration locale et doit être remplacée par ma propre adresse correspondante.

Code client :

<script>
  $(function(){
      
    var url = &#39;http://www.t1.com/index.php&#39;;
    $.ajax({
      type:      &#39;post&#39;,
      url:      url,
      data:      {name:&#39;wangyulu&#39;},
      dataType:    &#39;jsonp&#39;,
      success:function(result){
        console.log(result);
      }
    });
      
  });
 </script>
Copier après la connexion

Code serveur :

<?php
if($_POST){
  $arr = array(&#39;name&#39;=>$_POST[&#39;name&#39;], &#39;age&#39;=>23);
  echo json_encode($arr);
}
Copier après la connexion

Le navigateur fonctionne comme indiqué ci-dessous :

Jsonp post 跨域方案

Regardez les résultats en cours. Même si la méthode de transmission est définie sur publication, Jquery basculera automatiquement sur get. Est-ce que Jsonp ne prend vraiment pas en charge la soumission de publication...

Il y a un changement dans la flèche, ne vous inquiétez pas pour l'instant, après avoir lutté pendant si longtemps, mettons-le d'abord dans le programme, juste au cas où cela serait possible

Changement de client :
Ajouter : crossDomain : true
Modifier : dataType : "json"

Ajouter côté serveur :
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow -Méthodes : POST');
header('Access-Control-Max-Age: 1000');

Le résultat d'exécution est le suivant :

Jsonp post 跨域方案

Ici, nous constatons que le problème est enfin résolu, mais nous avons observé en détail que le délai de demande est très long. Il semble que les étrangers n'aient pas de solution efficace

Enfin, ce que je souhaite. disons, c'est que si vous voulez parfaitement supporter la méthode POST, JSONP est vraiment difficile à gérer, alors arrêtons-nous ici, cela a pris beaucoup de temps.

Le contenu ci-dessus peut être lié à d'autres points techniques. Si vous êtes intéressé, vous pouvez l'étudier vous-même. La solution principale ici est Jsonp. Si elle n'est pas bien écrite, ne vous plaignez pas, merci !

Ce qui précède représente l’intégralité du contenu de cet article, j’espère que vous l’aimerez tous.

Pour plus d'articles liés aux solutions multi-domaines post Jsonp, veuillez faire attention au site Web PHP 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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!