Maison  >  Article  >  interface Web  >  Résumé de l'utilisation de json et jsonp

Résumé de l'utilisation de json et jsonp

php中世界最好的语言
php中世界最好的语言original
2018-04-24 17:21:301251parcourir

Cette fois, je vais vous apporter un résumé de l'utilisation de json et jsonp. Quelles sont les précautions lors de l'utilisation de json et jsonp. Ce qui suit est un cas pratique, jetons un coup d'oeil.

json

1. La valeur de json peut être des types suivants :

① Nombre (entier ou flottant numéro de point) , tel que 123, 1.23

String (entre guillemets)

③ Valeur logique (vrai ou faux)

④ Tableau (entre entre crochets)

⑤ Objet (entre accolades)

⑥ null

2. ① eval('(' + jsondata + ')' ); Il est toujours dangereux à utiliser, injection de code

② JSON.parse(jsondata);

JSONLint json : outils de vérification de chaîne

3. jQuery implémente ajax

jQuery.ajax([settings])

type : type

url : envoyer la demande adresse

data : est un objet, ainsi que les données envoyées au serveur par la requête

dataType : le

type de données

qui devrait être renvoyé par le serveur, si non spécifié, jQuery fera automatiquement un jugement intelligent sur la base des informations MIME du package HTTP. Généralement, nous utilisons le format json, qui peut être défini sur "json"

succès : c'est une méthode. La requête est réussie, la fonction de rappel

est transmise et renvoyée. Les données suivantes et la chaîne contenant le code de réussite

erreur : est une méthode, cette fonction est appelée lorsque la requête échoue. . Passer l'objet XMLHttpRequest

jsonp

Cross-domain

La composition d'un domaine adresse du nom :

http://www .abc.com:8080/scripts/jquery.js

Protocole://nom du sous-domaine : numéro de port/adresse de la ressource de demande

Lorsque l'un des protocoles, noms de sous-domaines, noms de domaines principaux et numéros de port échoue, il est compté comme un domaine différent

Différents domaines demandant des ressources les uns aux autres sont comptés comme des « cross- domain"

javascript

Pour des raisons de sécurité, les appels inter-domaines vers des objets sur d'autres pages ne sont pas autorisés.

Qu'est-ce que le cross-domain ? L'explication simple est qu'en raison des restrictions de la politique JavaScript de même origine, js sous le nom de domaine a.com ne peut pas exploiter des objets sous le nom de domaine b.com ou c.a.com

Traitement inter-domaines méthode :

- Le proxy (appartenant à la technologie d'arrière-plan), par exemple, appelle le service du serveur de Shanghai en arrière-plan du serveur Web de Pékin, puis renvoie le résultat de la réponse au front-end, donc que le front-end appelle le serveur avec le même nom de domaine à Pékin et appelle Shanghai L'effet de service est le même.

—— JSONP

un nom de domaine à déclarer, b nom de domaine à appeler

Remarque : JSONP ne peut être utilisé que pour les requêtes GET, et ne prend pas en charge

Requêtes POST

(Limitations)

——XHR2

Le XMLHttpRequest Level2 fourni par HTML5 a implémenté l'accès inter-domaines et d'autres nouvelles fonctionnalités

Les versions inférieures à IE10 ne sont pas pris en charge

Apportez simplement quelques petites modifications côté serveur :

header("Access-Control-Allow-Origin:"); signifie que tous les serveurs peuvent y accéder, ou qu'il peut être remplacé. avec un nom de domaine spécifique, par exemple : le serveur est à Shanghai, * est remplacé par le nom de domaine du serveur de Pékin, afin que seul le nom de domaine de Pékin soit accessible

header("Access-Control- Allow-Methods:POST,GET");

Parlons des avantages et des inconvénients de jsonp.

Politique de même origine : JavaScript ne peut accéder qu'au contenu du même domaine que le document le contenant. jsonp peut couvrir la même politique d'origine. Lorsque nous utiliserons jsonp, ce sera un autre protocole de communication.

L'avantage de JSONP est qu'il n'est pas limité par la même politique d'origine que la requête Ajax implémentée par l'objet XMLHttpRequest ; il a une meilleure compatibilité et peut s'exécuter dans les navigateurs plus anciens sans le support de XMLHttpRequest ou d'ActiveX ; est terminé, le résultat peut être renvoyé en appelant le rappel.

Les inconvénients de JSONP sont : il ne prend en charge que les requêtes GET mais pas les autres types de requêtes HTTP telles que POST ; il ne prend en charge que les requêtes HTTP inter-domaines et ne peut pas résoudre le problème de la façon dont deux pages de domaines différents interagissent avec les uns les autres. Problèmes lors des appels JavaScript.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Ajustement de l'ordre d'exécution ajax dans jquery

Explication détaillée des exemples Ajax et $.ajax

Comment faire une requête ajax pour la page de surveillance avec jQuery

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!

Déclaration:
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