我正在关注这个博客post。但是我在AEM 6.1中得到了403错误。我不想更改“Apache Sling Referrer Filter”。我认为这个错误是由于CSRF令牌导致的,我可以通过调用/libs/granite/csrf/token.json获得该令牌
但是,如何在此表单标题中添加此CSRF标记?或者,有没有其他方法可以让它工作?
发布于 2016-04-12 16:42:13
您可以使用standalone标记添加csrf标记
<cq:includeClientLib categories="granite.csrf.standalone" />您可以将其添加到使用表单的每个页面上,或者您可能有一个继承到每个页面的母版页
在发送formular之前,csrf令牌是一个隐藏字段。看起来像是
<input type="hidden" name=":cq_csrf_token" value="4a6sd4f6as4df6as.a5s4df6a4sdf674asd96f"></input>发布于 2016-04-17 07:45:05
由于您的页面位于AEM之外,全局处理此问题的一种方法是在您的应用程序中包含granite csrf JS,并将其修改为指向您的AEM token.json url。这个脚本负责表单发布,AJAX在全局调用。
其次,这个脚本检查相关的服务器url主机和上下文路径。因此,您还必须禁用这些功能。这是一个修改起来相当简单的JS。我知道这不是一种合乎道德的方法,但以这种方式使用AEM也不是一种正常的用法:)
https://stackoverflow.com/questions/36564387
复制相似问题