2016-05-24 2 views
0

У меня есть SlingServlet, который я пытаюсь получить доступ, сделав Ajax вызова из HTML вне AEM.At первым это работает, но теперь я получаю следующее сообщение об ошибке:AEM/CQ | Не в состоянии Acces Sling Servlet из источника за пределами AEM

test.html:1 XMLHttpRequest cannot load http://localhost:4502/bin/DamHandlerr.html?imgURL=http://s3.amazonaws.com/f …iles-aviary-prod-us-east-1/2016-05-24/3dfa830ede7b44c4a88e872b22875c85.png. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

Может ли кто-нибудь вести меня здесь?

+0

Этот [SO post] (http://stackoverflow.com/questions/27985193/how-to-enable-cors-in-crxde-lite-aem) имеет указатель на включение CORS в AEM с использованием настраиваемого фильтра – Abhishek

ответ

0

Этот тип запроса называется CORS (перекрестный источник ресурсов). Если вы хотите, чтобы хост/порт клиента AJAX вызывал другой URL-адрес хоста/порта, серверу необходимо добавить соответствующие заголовки в ответ на запрос клиенту, который разрешает вызов на другой хост-сервер.

Вам нужно будет добавить заголовок Access-Control-Allow-Origin в ответ, чтобы позволить клиенту AJAX успешно получить доступ к другому URL-адресу происхождения.

Иногда в современных браузерах AJAX клиент, делает дополнительный запрос, чтобы проверить, если ресурс является безопасным для доступа под названием Pre-flight Requests, в этом случае дополнительные заголовки будут необходимы в ответ, как указано в link и this link.