Version | Lien de l’article |
---|---|
AEM as a Cloud Service | Cet article |
AEM 6.5 | Cliquez ici |
Vous pouvez incorporer des formulaires adaptatifs dans une page d’AEM Sites ou une page Web hébergée en dehors d’AEM. Le formulaire adaptatif incorporé est entièrement fonctionnel et les utilisateurs et utilisatrices peuvent le remplir et l’envoyer sans quitter la page. Cela permet à l’utilisateur ou à l’utilisatrice de rester dans le contexte des autres éléments de la page web et d’interagir simultanément avec le formulaire.
Effectuez les étapes suivantes avant d’incorporer un formulaire adaptatif à un site web externe
Vous pouvez incorporer un formulaire adaptatif en insérant quelques lignes de code JavaScript dans la page web. L’API dans le code envoie une requête HTTP au serveur AEM pour les ressources de formulaire adaptatif et injecte le formulaire adaptatif dans le conteneur de formulaire spécifié.
Pour incorporer le formulaire adaptatif :
Créez une page web sur votre site web avec le code suivant :
<!doctype html>
<html>
<head>
<title>This is the title of the webpage!</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<div class="customafsection"/>
<p>This section is replaced with the adaptive form.</p>
<script>
var options = {path:"/content/forms/af/myadaptiveform.html", CSS_Selector:".customafsection"};
alert(options.path);
var loadAdaptiveForm = function(options){
//alert(options.path);
if(options.path) {
// options.path refers to the path of the adaptive form
// For Example: /content/forms/af/ABC, where ABC is the adaptive form
// Note: If AEM server is running on a context path, the adaptive form URL must contain the context path
var path = options.path;
$.ajax({
url : path ,
type : "GET",
data : {
// wcmmode=disabled is only required for author instance
// wcmmode : "disabled"
},
async: false,
success: function (data) {
// If jquery is loaded, set the inner html of the container
// If jquery is not loaded, use APIs provided by document to set the inner HTML but these APIs would not evaluate the script tag in HTML as per the HTML5 spec
// For example: document.getElementById().innerHTML
if(window.$ && options.CSS_Selector){
// HTML API of jquery extracts the tags, updates the DOM, and evaluates the code embedded in the script tag.
$(options.CSS_Selector).html(data);
}
},
error: function (data) {
// any error handler
}
});
} else {
if (typeof(console) !== "undefined") {
console.log("Path of Adaptive Form not specified to loadAdaptiveForm");
}
}
}(options);
</script>
</body>
</html>
Dans le code incorporé :
Le formulaire adaptatif est incorporé à la page web. Observez ce qui suit dans le formulaire adaptatif incorporé :
La page Web externe qui incorpore le formulaire adaptatif envoie des requêtes au serveur AEM, qui se trouve généralement derrière le pare-feu dans un réseau privé. Pour vous assurer que les demandes sont dirigées en toute sécurité vers le serveur AEM, il est recommandé de configurer un serveur proxy inverse.
Examinons un exemple de configuration d’un serveur proxy inverse Apache 2.4 sans dispatcher. Dans cet exemple, vous allez héberger le serveur AEM avec le chemin de contexte /forms
et mapper /forms
pour le proxy inverse. Cela garantit que toute requête pour /forms
sur le serveur Apache est redirigée vers une instance AEM. Cette topologie permet de réduire le nombre de règles au niveau de la couche du Dispatcher, car toute requête précédée de /forms
dirige vers le serveur AEM.
Ouvrez le fichier de configuration httpd.conf
et supprimez les commentaires des lignes de code suivantes. Vous pouvez également ajouter ces lignes de code dans le fichier.
LoadModule proxy_html_module modules/mod_proxy_html.so
LoadModule proxy_http_module modules/mod_proxy_http.so
Configurez les règles de proxy en ajoutant les lignes de code suivantes dans le fichier de configuration httpd-proxy.conf
.
ProxyPass /forms https://[AEM_Instance]/forms
ProxyPassReverse /forms https://[AEM_Instance]/forms
Remplacez [AEM_Instance]
par l’URL de publication du serveur AEM dans les règles.
Si vous ne montez pas le serveur AEM sur un chemin de contexte, les règles de proxy au niveau de la couche Apache sont les suivantes :
ProxyPass /content https://<AEM_Instance>/content
ProxyPass /etc https://<AEM_Instance>/etc
ProxyPass /etc.clientlibs https://<AEM_Instance>/etc.clientlibs
# CSRF Filter
ProxyPass /libs/granite/csrf/token.json https://<AEM_Instance>/libs/granite/csrf/token.json
ProxyPassReverse /etc https://<AEM_Instance>/etc
ProxyPassReverse /etc.clientlibs https://<AEM_Instance>/etc.clientlibs
# written for thank you page and other URL present in AF during redirect
ProxyPassReverse /content https://<AEM_Instance>/content
Si vous configurez une autre topologie, assurez-vous de placer les URL d’envoi, de pré-remplissage et autres sur la liste autorisée au niveau de la couche du Dispatcher.
Lorsque vous incorporez un formulaire adaptatif dans une page web, tenez compte des bonnes pratiques suivantes :
[getData](https://developer.adobe.com/experience-manager/reference-materials/6-5/forms/javascript-api/GuideBridge.html)
pour obtenir la représentation XML ou JSON des données de formulaire dans le client.[unloadAdaptiveForm](https://developer.adobe.com/experience-manager/reference-materials/6-5/forms/javascript-api/GuideBridge.html)
pour décharger le formulaire adaptatif à partir du DOM HTML.https://'[server]:[port]'/system/console/configMgr
.