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

jquery résout le problème d'accès inter-domaines du client_jquery

WBOY
Libérer: 2016-05-16 16:22:13
original
959 Les gens l'ont consulté

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 :

Copier le code Le code est le suivant :

$.ajax({
async: faux,
​​​​​​ url : 'http://www.mysite.com/demo.do', // URL inter-domaines
            tapez : 'GET',
Type de données : 'jsonp',
               jsonp : 'jsoncallback', //Rappel par défaut
données : mesdonnées,
Délai d'expiration : 5000,
                beforeSend: function(){ //Cette méthode n'est pas déclenchée en mode jsonp. La raison peut être que si dataType est spécifié comme jsonp, ce n'est plus un événement ajax
            },
Succès : Fonction (JSON) {// Fonction de rappel prédéfinie du client JQuery Après avoir obtenu avec succès les données JSON sur les serveurs inter-domaines, cette fonction de rappel
. Si(json.actionErrors.length!=0){
alert(json.actionErrors);
                                                                                                                            genDynamicContent(qsData,type,json
);              },
complet : function(XMLHttpRequest, textStatus){
                        $.unblockUI({ fadeOut: 10 });
             },
​​​​​​ erreur : function(xhr){
dehors dehors dehors dehors vouloir sortir être dehors pendant toute la durée de plus de plus d'être fini alors donc donc donc donc donc donc donc donc donc donc donc à donc donc donc donc donc donc donc donc donc donc donc donc donc donc donc donc donc donc ainsi à ainsi ainsi ainsi ainsi donc donc à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à cette méthode avec cette méthode méthode méthode méthode méthode méthode à méthode méthode à méthode méthode pour ne pas déclencher
//Gestion des erreurs de demande
alert("Erreur de demande (veuillez vérifier l'état du réseau concerné.)");
               }
        });

Remarque :

Copier le code Le code est le suivant :
$.getJSON("
http://www.mysite.com/demo.do?name1=" value1 "&callback=?",               fonction(json){
If(json.property name==value){
//Exécuter le code
                                                                                                                } );

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.

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