Maison > interface Web > js tutoriel > analyse du principe de mise en œuvre de jsonp

analyse du principe de mise en œuvre de jsonp

PHP中文网
Libérer: 2017-06-21 13:29:52
original
6823 Les gens l'ont consulté

1. Le principe d'implémentation de jsonp est d'utiliser des balises de script pour obtenir les caractéristiques des différentes ressources sources afin d'atteindre l'objectif d'accès inter-domaines à une ressource. Le comportement spécifique est le suivant :

  1. Créez une balise de script, écrivez l'adresse de la requête dans son attribut src et insérez ce lien externe de script dans la balise head

  2. ;
  3. Déclarez un rappel de fonction de rappel, le nom de la fonction est cohérent avec l'adresse de la requête

  4. Le contenu de l'adresse de la requête est un rappel de fonction d'exécution qui prend un objet json ; en tant que paramètre ;

  5. Lorsque la ressource de script est chargée, le rappel commence à s'exécuter et les données json sont générées.

  6. jsonp est en fait un remplissage json, et la fonction qui encapsule les données json est un remplissage.

// 简单的mock jsonpvar mockJsonp = function(url) {var ele = document.createElement('script');var head = document.getElementsByTagName('head')[0];
    ele.src = url;
    head.appendChild(ele);
}
mockJsonp('./index.js');function callback(data){
    console.log(data);
}// index.jscallback("name": "xxx", "age": "20");
Copier après la connexion

2. Lorsque le format de données de requête ajax dans jq est jsonp, les opérations suivantes se produiront : construisez d'abord une balise de script, puis enregistrez une rappel onload, et enfin insérez-y la balise de script construite ; une fois l'insertion terminée, le rappel onload sera déclenché, dans lequel la balise de script précédemment insérée sera supprimée. Le code callback(200, "success") est en fait la fonction de rappel de réussite qui déclenche avec succès le jsonp d'Ajax. La fonction de rappel est en fait une fonction terminée.

3. Jsonp inter-domaine ne peut être qu'une requête get Lorsque jq encapsule jsonp inter-domaine, que nous spécifions get ou post, il sera remplacé par une requête get.

4. Autres méthodes inter-domaines

  1. cors (Cross-Origin Resource Sharing) partage de ressources inter-domaines, définissez Access-Control-Allow-Origin sur le serveur côté, si vous naviguez Si le serveur détecte les paramètres correspondants, il autorisera l'accès

  2. Modifier document.domain et définir le document.domain du sous-domaine et du domaine principal sur le même ; domaine principal ;

  3. window.name, chaque page a des autorisations de lecture et d'écriture sur window.name, window.name persiste dans toutes les pages chargées dans une fenêtre

  4. window.postMessage

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!

É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