我希望在对特定操作发出请求时隐藏我的网址中的操作参数。例如,
<?php
echo $this->Html->url(array('controller' => 'controllerName', 'action' => 'actionName', parameter1, $parameter2));
?>
以上代码将生成url:
controllerName/actionName/1/123
我想要实现的是,当用户点击此类网址时,param1 (= 1)
和param2 (= 123)
不应该对他可见,并且链接应该是,
controllerName/actionName /* no attribute visible */
这可能吗?我是如何实现这一点的,我正在阅读Routing,但无法实现这一目标!
答案 0 :(得分:1)
使用POST请求代替GET,或使用pushState
将浏览器的网址栏设置为您想要的任何内容。
答案 1 :(得分:0)
经过大量搜索和尝试很多事情,我最终得到了这个解决方案。
生成链接,并将动作名称和参数绑定为数据:
<a class="blue viewDetailButton" data-action='<?= $detail["controllerActionName"] ?>' data-request_id='<?= $detail["request_id"] ?>' >
现在,编写了一个jquery脚本,它将在click事件上触发并发出一个post请求(以post作为数据提交表单作为数据):
$(document).on("click", ".viewDetailButton", function(event) {
event.preventDefault();
var url = '<?= $this->Html->url(array('controller' => 'requests', 'action'=>null)) ?>/'+$(this).data("action");
var form = $('<form action="' + url + '" method="post">' +
'<input type="text" name="id" value="'+$(this).data("request_id")+'" />' +
'</form>');
$(form).submit();
}) ;