L'accès inter-domaines côté client a toujours été un casse-tête. Heureusement, avec l'aide de jQuery, les problèmes inter-domaines ont été résolus depuis jQuery-1.2. Depuis que j'ai rencontré des problèmes inter-domaines dans le projet, j'ai profité de cette opportunité pour enquêter sur les problèmes inter-domaines, consulté des informations pertinentes et ma propre pratique, et finalement résolu les problèmes inter-domaines. Enregistrez-le pour référence.
jQuery.ajax() prend en charge les méthodes d'obtention inter-domaines, qui sont en fait effectuées à l'aide de jsonp.
Cas réel :
Cette méthode est en fait une encapsulation avancée de l'API $.ajax({..}) dans l'exemple ci-dessus. Certains des paramètres sous-jacents de l'API $.ajax sont encapsulés et non visibles.
Côté serveur, utilisez callback= request.getParameter("callback") pour que le jsonp32440980 soit rappelé ultérieurement côté jQuery
Renvoyez ensuite quelque chose comme : "jsonp32440980(" tableau json à renvoyer ")"
jquery le chargera dynamiquement et l'appellera via la méthode de rappel : jsonp32440980 (tableau json
) ;
Cela atteint l’objectif de l’échange de données entre domaines
.
Le principe le plus fondamental de jsonp est le suivant : l'ajout dynamique d'un objet est cohérent (qq space utilise cette méthode pour réaliser un échange de données entre domaines). JSONP est une sorte de comportement d'injection de script (Script Injection), il présente donc également certains risques de sécurité.
Remarque : jquey ne prend pas en charge la publication sur plusieurs domaines.
En effet, bien que l'utilisation de post pour générer dynamiquement des iframes puisse atteindre l'objectif de post cross-domain (c'est ainsi qu'un expert en js a corrigé jquery1.2.5), il s'agit d'une méthode relativement extrême et n'est pas recommandée. On peut également dire que la méthode d'accès inter-domaines de get est légale et que la méthode post est considérée comme illégale du point de vue de la sécurité. Il est préférable de ne pas publier en dernier recours la demande d'accès inter-domaines sur le client. côté semble avoir attiré l'attention du w3c. Selon les informations, html5 La norme WebSocket prend en charge l'échange de données entre domaines et devrait être une solution facultative d'échange de données entre domaines à l'avenir.