I'm calling GlideAjax from UI Macro , but I'm facing below error:
org.mozilla.javascript.EcmaError: "GlideAjax" is not defined.
Caused by error in at line 2
1:
==> 2: var ga = new GlideAjax('global.GetHostName');
3: ga.getXMLWait();
4: var hostName = ga.getAnswer();
5:
My UI Macro looks like below:
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<g:evaluate>
var ga = new GlideAjax('global.GetHostName');
ga.getXMLWait();
var hostName = ga.getAnswer();
</g:evaluate>
<!--<j:set var="jvar_inc" value="${help_sysid}" />-->
<span id="asp-cms-user-salutation">
${gs.getMessage('Welcome')},
<j:if test="${!gs.getUser().isXML()}">
<span id="asp-cms-user-name"><a href="profile.do">${gs.getUserDisplayName()}</a></span>
<span id="asp-cms-user-sysname">${hostName}</span>
</j:if>
</span>
</j:jelly>
What I'm doing wrong here ??
GlideAjax
is a client-side api used to make your browser make an ajax request.
The <g:evaluate>
tag in jelly is a server-side script. Assuming GetHostName
is a Script include name, you can just directly call the script include like:
<g:evaluate>
var hostNameGetter = new global.GetHostName();
var hostName = hostNameGetter.getValue(); // replace getValue() with whatever your method name is in GetHostname
</g:evaluate>