我是AEM开发的新手,在我的本地环境中我遇到了一些问题。我使用的代码与当前服务器上的代码相同(在服务器上一切正常工作),所以我想我这方面一定有一些错误的配置。
因此,在尝试下载资产时,应该调用这个servlet:
@Component(metatype = false)
@Service
@Properties({ @Property(name = "sling.servlet.resourceTypes", value = "sling/servlet/default"),
@Property(name = "sling.servlet.methods", value = { "GET", "POST" }),
@Property(name = "sling.servlet.selectors", value = "assets") })
public class AssetDownloadServlet extends SlingAllMethodsServlet例如,它由“资产”选择器触发。
http://localhost:4502/content/.assets.zip?path=content/folder/asset.jpg&_charset_=utf-8问题是,如果我在酒吧里写了一个这样的URL,它就能正常工作。servlet被调用并下载asset.jpg。
不起作用的是Javascript代码,当用户单击按钮时,构建URL,将其放入隐藏的表单,然后提交表单。在本例中,servlet根本没有被调用(我在调试模式中放置了一些断点来检查),下面的页面将出现:
Status 200
Message OK
Location /content/aem/download
Parent Location /content/aem
Path /content/aem/download
Referer http://localhost:4502/content/aem/download.html
ChangeLog <pre></pre>
Go Back
Modified Resource
Parent of Modified Resource正如我所说的,代码不应该是错误的,因为它在服务器上工作。我只是不知道该去哪里了解我在当地做错了什么。
编辑:
我打开了一个相关的问题,因为这个问题可能是另一个性质:CQ5 FormPanel在Chrome中发送HTTP,在IE中发送HTTP
发布于 2018-05-07 11:15:30
据我所见,您的网址中没有选择器:
http://localhost:4502/content/assets.zip?path=content/folder/asset.jpg&_charset_=utf-8在这里我可以看到
如果要触发servlet,应该添加选择器(在路径和扩展之间添加.assets)。
http://localhost:4502/content/assets.assets.zip?path=content/folder/asset.jpg&_charset_=utf-8参阅更多文档:鱼缸分解

https://stackoverflow.com/questions/50210904
复制相似问题