我正在尝试使用APEX_UTIL.PREPARE_URL
为需要校验和的页面生成APEX URL,并且试图将目标页面上的页面项设置为包含特殊字符的值。对于这个问题,假设我传递的唯一特殊字符是逗号,尽管我的问题似乎适用于所有特殊字符。
根据the APEX URL documentation,包含逗号的项目值需要用反斜杠括起来。因此,当我构建URL时,最终会得到以下内容:
f?p=112:50:session::::P50_PAGE_ITEM:\123,abc\:
然后我通过APEX_UTIL.PREPARE_URL
传递此URL:
APEX_UTIL.PREPARE_URL('f?p=112:50:session::::P50_PAGE_ITEM:\123,abc\:')
当我尝试遵循返回的链接时,出现以下错误:
根据请求,清除缓存,参数名称和参数值(...)计算出的校验和与传递给show过程的校验和不匹配。
如果我尝试传递不包含逗号的值,并且删除了反斜杠,则该值的传递不会出现问题。
如何获取包含反斜杠的URL的有效校验和,以便我可以传递包含逗号(和其他特殊字符)的值?
答案 0 :(得分:0)
APEX_UTIL.PREPARE_URL
应该可以很好地处理反斜杠。包含结果URL的区域可能正在转义特殊字符,从而导致校验和不匹配。
要测试APEX_UTIL.PREPARE_URL
的实际输出,请尝试在PL / SQL动态区域中输出URL。例如:
DECLARE
l_url VARCHAR2(200) := 'f?p=112:50:session::::P50_PAGE_ITEM:\123,abc\:';
BEGIN
htp.p('<a href="'||apex_util.prepare_url(l_url)||'">page 52</a>');
END;