我想捕获一个被点击的元素的id,然后将该id传递给控制器,所有这些都没有在链接或url参数中显示id,也不必编写自定义ajax加载。开箱即用的任何类似的东西?
答案 0 :(得分:1)
我假设您不想向用户显示ID,但您需要使用元素ID来访问服务器。
您可以使用自定义请求标头,但这需要AJAX方法。这是一个使用JQuery的草图
$("a.sends_element_id").click(function(e){
e.preventDefault();
$.ajax({
url: $(e.target).attr("href"),
type: "GET",
beforeSend: function(xhr){xhr.setRequestHeader('X-Element-ID', $(e.target).attr("id");},
success: function(result) {
// Do something here to display the page
// Eg. http://stackoverflow.com/questions/824349/modify-the-url-without-reloading-the-page
}
});
答案 1 :(得分:1)
你想要实现什么(最终目标是什么)?听起来你想在客户端和服务器之间进行通信而不在用户的URL中使用ajax或编码参数。
通过这些限制,通常的方法是:
1)将单击目标包装在表单中,并将id设置为隐藏值。点击,只需发布表单。这将需要页面刷新,但由于它是一个POST,不会破坏网址。
2)在cookie中设置id,强制页面刷新,读取服务器上的id并取消设置。这显然也需要页面刷新,但不会对网址中的任何内容进行编码。
3)使用不可见的iFrame加载具有感兴趣的param的url。这不需要刷新,网址可以是任何内容,因为用户永远不会看到它。
如果页面刷新/更改很好,表单路径可能是最好的。如果您不希望页面刷新,则xhr请求显然是最佳解决方案。它的真的很简单,但iFrame解决方案也可能是一个可能满足您需求的黑客攻击。