Apex中redirect打开的模态页请求未显示在Debug中的问题
问题原因及解决方法
核心原因
用apex.navigation.redirect()打开模态页时,默认不会自动传递当前会话的调试参数(p_debug),导致新打开的模态页会话未开启调试跟踪,所以所有请求都不会被记录到Debug页面中——这就是你看不到含show的Path Info以及后续请求的原因。
解决办法
方法1:手动拼接调试参数到跳转URL
先获取当前页面的p_debug参数值,再拼到跳转的模态页URL里,确保调试状态被传递:
// 获取当前页面的调试参数 const debugValue = apex.item('pDebug').getValue(); // 你的模态页基础URL let modalUrl = "f?p=你的应用ID:模态页ID:&APP_SESSION.::NO:::"; // 如果当前处于调试状态,拼接参数 if (debugValue) { // 判断URL已有参数的话用&,没有用? const separator = modalUrl.includes('?') ? '&' : '?'; modalUrl += `${separator}p_debug=${debugValue}`; } // 跳转打开模态页 apex.navigation.redirect(modalUrl);
方法2:用APEX官方推荐的模态页打开方式(更省心)
改用apex.navigation.dialog()打开模态页,这个方法会自动继承当前会话的调试参数,不用手动拼接:
apex.navigation.dialog( "f?p=你的应用ID:模态页ID:&APP_SESSION.::NO:::", { title: "你的模态页标题", height: 500, // 自定义高度 width: 700, // 自定义宽度 modal: true }, "t-Dialog--standard", // 模态页样式类 $("#触发按钮的选择器") );
验证方式
打开模态页后,查看浏览器地址栏的URL,如果里面包含p_debug=XXXX(XXXX是一串调试密钥),就说明调试参数已经传递成功,此时再操作模态页的按钮,就能在Debug页面看到对应的请求记录了。
内容的提问来源于stack exchange,提问作者shady
相关产品推荐
相关产品推荐

