Maison >interface Web >js tutoriel >analyse du principe de mise en œuvre de jsonp
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 :
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
Déclarez un rappel de fonction de rappel, le nom de la fonction est cohérent avec l'adresse de la requête
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 ;
Lorsque la ressource de script est chargée, le rappel commence à s'exécuter et les données json sont générées.
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");
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
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
Modifier document.domain et définir le document.domain du sous-domaine et du domaine principal sur le même ; domaine principal ;
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
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!