Maison > Article > interface Web > Compétences Jsonp post solution_javascript inter-domaines
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.
Description :
http://www.t1.com/index.phpURL 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 = 'http://www.t1.com/index.php'; $.ajax({ type: 'post', url: url, data: {name:'wangyulu'}, dataType: 'jsonp', success:function(result){ console.log(result); } }); }); </script>
Code du serveur :
<?php if($_POST){ $arr = array('name'=>$_POST['name'], 'age'=>23); echo json_encode($arr); }
Le navigateur fonctionne comme indiqué ci-dessous :
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 ?
Après beaucoup de problèmes, j'ai finalement trouvé des informations à ce sujet dans stackoverflow. Il semble que les étrangers rencontrent également de tels problèmes. Je publierai l'adresse pour tout le monde.
http://stackoverflow.com/questions/3860111/how-to-make-a-jsonp-post-request-that-specifies-contenttype-with-jquery
En regardant l'image ci-dessus, nous avons constaté qu'il y a des changements dans les marques de flèches. Nous ne nous en soucions pas pour l'instant. Après avoir lutté pendant si longtemps, mettons-le d'abord dans le programme, juste au cas où cela pourrait être le cas. fait
Modifications de clients :
Ajouté : crossDomain : true
Modification : dataType : "json"
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Max-Age: 1000');
À ce stade, nous avons constaté que le problème était finalement 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 veux dire, c'est qu'il est vraiment difficile de supporter parfaitement JSONP en mode POST. Cela prend 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. S'il n'est pas bien écrit, 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.