由於某些特定原因,我需要自動爲每個請求的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合作過,那麼很難弄清楚我所擁有的限制。 –