Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.
SOLVED

Http POST not getting call

Avatar

Level 2

I have written sling servlet for POST and I called through ajax and Chrome Rest Client , but it giving the 403 forbidden error, and i went through some search and find solution that need to remove the POST method from "Apache Sling Referrer Filter" and "CSRF Filter" in configuration Manager. I did same thing and it worked.

But same code is working for my friend without removing POST in configMgr,

Can you please answer what exactly issue with http POST in AEM ?

Both are using AEM 6.2

1 Accepted Solution

Avatar

Correct answer by
Level 10

To successfully post to an AEM servlet using AJAX - you need to use the AEM version of JQuery. This has a token that lets you perform a POST operation.

See:

https://helpx.adobe.com/experience-manager/using/custom-sling-servlets.html

in this article - notice we use:

 <cq:includeClientLib categories="cq.jquery" />

View solution in original post

11 Replies

Avatar

Correct answer by
Level 10

To successfully post to an AEM servlet using AJAX - you need to use the AEM version of JQuery. This has a token that lets you perform a POST operation.

See:

https://helpx.adobe.com/experience-manager/using/custom-sling-servlets.html

in this article - notice we use:

 <cq:includeClientLib categories="cq.jquery" />

Avatar

Level 2

Thanks Scott, It's working with AEM version of JQuery.

Regards,

Shishira

Avatar

Level 4

Hello Scott. Is using cq.Jquery the only recommended approach for doing POST call in AEM.  I have a requirement to write a sling servlet which supports POST request. I am looking for an alternative to using cq.Jquery to invoke the servlet.

Thanks,

Anand MN

Avatar

Level 10

Hi,

The reason cq.Jquery is recommended way because it gets the CSRF-Token from AEM which you need to pass in POST request.

If you still do not want to use cq.jquery refer this Send a CSRF Token to an AEM 6.1 Servlet without using jQuery or granite.csrf.standalone clientlib Ex...

Thanks

Avatar

Level 4

Why I dont want cq.Jquery is because the request will not be coming from my site. It could be a 3rd party web app.

Thanks,

Anand MN

Avatar

Level 7

I think you'll need to change Sling Referrer Settings to allow request from 3rd party app..

Avatar

Level 4

But , is that recommended approach for a production env?.

Avatar

Level 7

You are checking this on author, right? You are right that not recommended on prod.. It can be used for checking things on local/staging

Setting Your Referrer Filter to Allow Empty

Avatar

Level 4

I am looking for a recommended approach on prod publisher. I am aware of this testing approach in author.

Thanks,

Anand MN

Avatar

Level 4

Hi All, Any pointers to this?.Or is it that AEM by design doesn't support POST operation.

Regards,

Anand MN