由于某些特定原因,我需要自动为每个请求的URL添加或附加一个参数,当且仅当该参数自第一个请求以来已存在于URL中。换句话说,如果我的网址为/share/page/site/sample/documentlibrary?embedded
,则对/share/page/site/sample/[whatever]
的每个请求都必须包含嵌入参数以及原始请求可能添加的其他参数。如何在每个HTTP请求上自动添加参数?
我正在使用Alfresco Share(v4.2.b)什么意思是说Web应用程序已经存在,尽管我可以执行自定义,但我有局限性,因为我没有完全控制它。如果这是我从头开始创建的网络应用程序,它不会是一个问题。根据我的限制,理想情况下解决方案应该尽可能少侵入。同时,如果它是一个基于JavaScript的解决方案,使用YUI而不是其他库是一个优点,但不是一个要求。
我一直在寻找在寻找一种方法,之后我心目中的下一个可能的解决方案:
通过添加参数每个页面卸载之前URL中使用的JavaScript。喜欢的东西:
window.onbeforeunload = function(e) { // Add parameter to target URL };
但我相信,我在读并根据一些测试中,我这样做是行不通的。看起来有一种安全限制(顺便说一下)。
通过使用JavaScript也更新每个链接的
href
属性(<a/>
),一旦页面完成加载。例如,/share/page/site/sample/document-details?nodeRef=workspace://SpacesStore/089acea3-3b37-403d-9a8d-ae484ddd2ccb
可以转换为/share/page/site/sample/document-details?nodeRef=workspace://SpacesStore/089acea3-3b37-403d-9a8d-ae484ddd2ccb&embedded
。该解决方案的问题是,这两种形式的GET或POST和HREF使用JavaScript将超出范围的触发...使用任何URL重写技术或类似图书馆UrlRewriteFilter(没有时间还没有测试它,抱歉)。
创建一个露天分享extension module其更改或更新每一个请求,也许有一个模块或子评价者的帮助。我不知道它是否适用于扩展模块,但我相信我可以在任何可以对请求执行更改的地方阅读。
我必须添加(对于那些与Alfresco分享知识)选项1,2和4将作为扩展模块实现。
那么,我希望我已经解释了我的问题。我强烈感谢一些建议或可能的方法。无论如何,我会继续努力,我会提出任何更新。
恐怕不可能做到。我不能在Alfresco Share中做这样的事情。共享是一个已经存在的Web应用程序,您可以自定义它创建扩展模块,大致可以防止部分渲染,替换部分,在部分之前或之后添加自定义内容,而不是太多。我知道如果你从未与Alfresco Share合作过,那么很难弄清楚我所拥有的限制。 –