Expand my Community achievements bar.

SOLVED

AJAX call in AEM 6

Avatar

Level 3

HI, 

I am trying to make an AJAX call through my JS file,

The following is my code:

 

use(function () {
   console.log('Entry in Active Checker JS File');

    var page = currentPage.getPath()+'/_jcr_content/feature/event.infinity.json';
    var queryString = '?nocache=nocache';
    console.log(page + queryString);


    $.ajax({ 
        type: 'GET', 
        url: page, 
        async: false,
        data: { get_param: 'event' }, 
        success: function (data) { 
             var names = data;

            console.log(names);
            }
    });


    var currentDate = new Date();


    console.log('Exit in Active Checker JS File');
});

Calling it from the html as :

<div data-sly-use="activeChecker.js" data-sly-unwrap>
    123
    </div>

 

but getting the following error. :

13.01.2015 19:14:57.238 *ERROR* [0:0:0:0:0:0:0:1 [1421156697160] GET /content/global/en-us/home/event4.html HTTP/1.1] com.day.cq.wcm.core.impl.WCMDeveloperModeFilter Error during include of SlingRequestPathInfo: path='/content/global/en-us/home/event4/jcr:content/feature', selectorString='null', extension='html', suffix='null'
org.apache.sling.api.SlingException: Cannot get DefaultSlingScript: org.mozilla.javascript.EcmaError: ReferenceError: "$" is not defined. (/apps/project/components/content/feature/feature.html#11)
    at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:481)
    at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:511)
    at org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:45)
    at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:64)
    at com.day.cq.wcm.core.impl.WCMDeveloperModeFilter.doFilterWithErrorHandling(WCMDeveloperModeFilter.java:150)
    at com.day.cq.wcm.core.impl.WCMDeveloperModeFilter.doFilter(WCMDeveloperModeFilter.java:118)
   ...
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
    at java.lang.Thread.run(Unknown Source)
Caused by: io.sightly.java.api.SightlyUseException: org.mozilla.javascript.EcmaError: ReferenceError: "$" is not defined. (/apps/project/components/content/feature/feature.html#11)
    at io.sightly.js.loop.EventLoop.run(EventLoop.java:71)
    at io.sightly.js.loop.EventLoop.schedule(EventLoop.java:46)
    at io.sightly.js.JsEnvironment.runScript(JsEnvironment.java:136)
    at io.sightly.js.JsEnvironment.runResource(JsEnvironment.java:99)
    at io.sightly.js.JsEnvironment.run(JsEnvironment.java:91)
    at io.sightly.js.JsEnvironment.run(JsEnvironment.java:118)
    at io.sightly.js.JsUseProvider.provide(JsUseProvider.java:92)
    at io.sightly.java.engine.extension.use.UseExtension$1.call(UseExtension.java:82)
    at io.sightly.java.runtime.common.SightlyRuntimeImpl.call(SightlyRuntimeImpl.java:51)
    at apps.marsh.components.content.eventfeaturearea.SightlyJava_eventfeaturearea.render(SightlyJava_eventfeaturearea.java:183)
    at io.sightly.java.api.BaseRenderUnit.render(BaseRenderUnit.java:39)
    at io.sightly.java.engine.SightlyScriptEngine.evaluateScript(SightlyScriptEngine.java:109)
    at io.sightly.java.engine.SightlyScriptEngine.eval(SightlyScriptEngine.java:93)
    at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:361)
    at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:171)
    at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:463)
    ... 199 common frames omitted
Caused by: org.mozilla.javascript.EcmaError: ReferenceError: "$" is not defined. (/apps/project/components/content/feature/feature.html#11)
    at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3687)
    at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3665)
    at org.mozilla.javascript.ScriptRuntime.notFoundError(ScriptRuntime.java:3750)
    at org.mozilla.javascript.ScriptRuntime.nameOrFunction(ScriptRuntime.java:1794)
    at org.mozilla.javascript.ScriptRuntime.name(ScriptRuntime.java:1733)
    at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1552)
    at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:815)
    at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:109)
    at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
    at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
    at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:107)
    at io.sightly.js.rhino.JsUtils.callFn(JsUtils.java:37)
    at io.sightly.js.use.UseFunction$2.run(UseFunction.java:98)
    at io.sightly.js.loop.Task.run(Task.java:36)
    at io.sightly.js.loop.EventLoop.run(EventLoop.java:61)
    ... 214 common frames omitted

1 Accepted Solution

Avatar

Correct answer by
Level 9

It seems that jquery is not included in your page, you can look view source and find whether jquery is included or use firebug or chrome dev tools.

Please make sure that you include dependency of jquery in your component. Here is the information you need for jquery integration

http://helpx.adobe.com/experience-manager/using/integrating-jquery-framework-cq.html

Apart from this please check the following link from jquery about this type of error

http://jquery-howto.blogspot.com/2013/02/referenceerror-jquery-is-not-defined.html

View solution in original post

5 Replies

Avatar

Level 10

ReferenceError: "$" is not defined. 

This suggests that you have not properly setup JQuery libs in a client libs folder.

Avatar

Correct answer by
Level 9

It seems that jquery is not included in your page, you can look view source and find whether jquery is included or use firebug or chrome dev tools.

Please make sure that you include dependency of jquery in your component. Here is the information you need for jquery integration

http://helpx.adobe.com/experience-manager/using/integrating-jquery-framework-cq.html

Apart from this please check the following link from jquery about this type of error

http://jquery-howto.blogspot.com/2013/02/referenceerror-jquery-is-not-defined.html

Avatar

Level 3

Hi,

In the firebug console, the jquery.js file is being called. Also when I include the javascript code within the <script> tags of my html file, i am able to access it via $(document).ready, but the problem is that i cannot access the currentPage and other Use API's objects. Currently i have implemented my logic in a JS file and calling it from my html file via data-sly-use. How can I access both the $.ajax and my Use API's objecs.

Avatar

Employee

Please be aware the sightly javascript is executed server-side, not client-side.

Avatar

Level 3

So is there any way of integrating the two?