PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Interrogation d'un serveur du même domaine ou d'un domaine différent
  • Page renvoyant les données au format JSON
  • IMPORTANT : Validité du JSON
  • Sécurité
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget iOSApple WatchCatalystUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
JSONExécute (Fonction)
En anglais : JSONExecute
Appelle une URL serveur qui retourne des données au format JSON (JavaScript Object Notation). Les données serveur sont évaluées et retournées sous forme d'un objet.
Exemple
MesContacts est un objet dynamique
MesContacts = JSONExécute(RépertoireWeb() + "FR/Page_Objet.awp?id=12")

// Traitement des données reçues
POUR i = 1 _A_ Dimension(MesContacts:Liste)
ListeAjoute(LISTE_Liste_des_contacts, MesContacts:Liste[i]:Nom + ...
" " + MesContacts:Liste[i]:Prenom)
FIN
Syntaxe

Syntaxe synchrone : la fonction est bloquante jusqu'à la réception des données Masquer les détails

<Résultat> = JSONExécute(<URL de la page>)
<Résultat> : Objet dynamique
Données renvoyées par le serveur. Ce résultat doit être affecté à un objet de type objet dynamique.
<URL de la page> : Chaîne de caractères (avec guillemets)
URL de la page renvoyant des données au format JSON. Cette URL peut être une URL partielle ou totale.
  • Si l'URL ne commence pas par 'http:', cette URL est utilisée directement. Attention : le domaine doit être dans le domaine de la page courante (ou un sous-domaine), sinon l'appel échoue.
  • Si l'URL commence par '/', l'URL est considérée comme chemin absolu dans le domaine courant.
  • Dans tous les autres cas, l'URL est considérée comme chemin relatif au répertoire de la page courante.
Versions 22 et supérieures

Syntaxe asynchrone : une procédure est exécutée à la réception des données Masquer les détails

JSONExécute(<URL de la page> , <Nom de la procédure>)
<URL de la page> : Chaîne de caractères (avec guillemets)
URL de la page renvoyant des données au format JSON. Cette URL peut être une URL partielle ou totale.
  • Si l'URL ne commence pas par 'http:', cette URL est utilisée directement. Attention : le domaine doit être dans le domaine de la page courante (ou un sous-domaine), sinon l'appel échoue.
  • Si l'URL commence par '/', l'URL est considérée comme chemin absolu dans le domaine courant.
  • Dans tous les autres cas, l'URL est considérée comme chemin relatif au répertoire de la page courante.
<Nom de la procédure> : Chaîne de caractères (avec ou sans guillemets)
Nom de la procédure navigateur (globale ou locale) qui effectue le traitement des données JSON.
Cette procédure est le la forme :
PROCEDURE <Procédure navigateur> (<Résultat JSON de l'appel>)
Le paramètre passé à cette procédure est un objet dynamique, contenant les données JSON. Il doit être indiqué dans la déclaration de la procédure.
Nouveauté 22

Syntaxe asynchrone : une procédure est exécutée à la réception des données Masquer les détails

JSONExécute(<URL de la page> , <Nom de la procédure>)
<URL de la page> : Chaîne de caractères (avec guillemets)
URL de la page renvoyant des données au format JSON. Cette URL peut être une URL partielle ou totale.
  • Si l'URL ne commence pas par 'http:', cette URL est utilisée directement. Attention : le domaine doit être dans le domaine de la page courante (ou un sous-domaine), sinon l'appel échoue.
  • Si l'URL commence par '/', l'URL est considérée comme chemin absolu dans le domaine courant.
  • Dans tous les autres cas, l'URL est considérée comme chemin relatif au répertoire de la page courante.
<Nom de la procédure> : Chaîne de caractères (avec ou sans guillemets)
Nom de la procédure navigateur (globale ou locale) qui effectue le traitement des données JSON.
Cette procédure est le la forme :
PROCEDURE <Procédure navigateur> (<Résultat JSON de l'appel>)
Le paramètre passé à cette procédure est un objet dynamique, contenant les données JSON. Il doit être indiqué dans la déclaration de la procédure.

Syntaxe asynchrone : une procédure est exécutée à la réception des données Masquer les détails

JSONExécute(<URL de la page> , <Nom de la procédure>)
<URL de la page> : Chaîne de caractères (avec guillemets)
URL de la page renvoyant des données au format JSON. Cette URL peut être une URL partielle ou totale.
  • Si l'URL ne commence pas par 'http:', cette URL est utilisée directement. Attention : le domaine doit être dans le domaine de la page courante (ou un sous-domaine), sinon l'appel échoue.
  • Si l'URL commence par '/', l'URL est considérée comme chemin absolu dans le domaine courant.
  • Dans tous les autres cas, l'URL est considérée comme chemin relatif au répertoire de la page courante.
<Nom de la procédure> : Chaîne de caractères (avec ou sans guillemets)
Nom de la procédure navigateur (globale ou locale) qui effectue le traitement des données JSON.
Cette procédure est le la forme :
PROCEDURE <Procédure navigateur> (<Résultat JSON de l'appel>)
Le paramètre passé à cette procédure est un objet dynamique, contenant les données JSON. Il doit être indiqué dans la déclaration de la procédure.
Remarques

Interrogation d'un serveur du même domaine ou d'un domaine différent

Dans le cas général, le serveur se trouve sur le domaine qui héberge le site. Dans ce cas, aucune manipulation spécifique ne doit être réalisée.
Lors de l'interrogation d'un serveur d'un autre domaine :
  • le serveur doit implémenter le protocole CORS,
  • le site courant doit être autorisé à contacter le serveur.
Pour plus de détails sur le protocole CORS (Cross-Origin Resource Sharing), consultez http://www.w3.org/TR/cors/.

Page renvoyant les données au format JSON

La page renvoyant les données au format JSON peut être une page AWP, une page PHP ou un autre type de page.
Si cette page est une page WEBDEV, cette page peut être au format AWP ou PHP. Cette page doit renvoyer les données dans un format JSON avec la fonction ChaîneAffiche. Il est également nécessaire d'utiliser la fonction ChaîneVersUTF8 pour obtenir un format valide.
Par exemple, le code suivant permet de créer la chaîne qui sera renvoyée. Cette chaîne contient le code permettant de définir un objet et un tableau. Le code utilisé est du code Javascript.
sObjet est une chaîne = [
{id: 12,
Liste:  [
{Nom: "smith", Prenom: "john"},
{Nom: "dupond", Prenom: "marie"},
{Nom: "martin", Prenom: "lauré"}]
}
]
ChaîneAffiche(ChaîneVersUTF8(sObjet))

IMPORTANT : Validité du JSON

Aucune vérification n'est effectuée sur la validité du JSON reçu depuis le serveur. Il est nécessaire de s'assurer que la page appelée est une page de confiance pour ne pas risquer d'avoir une injection de JavaScript dans la page courante.

Sécurité

Pour renforcer la sécurité des données transmises, il est possible d'utiliser une page sécurisée (URL de type https).
Composante : WDJS.DLL
Version minimum requise
  • Version 14
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire