JQuery从超链接调用函数
JQuery call function from hyperlink
在JSP/JQUERY中,我正在列表视图中创建超链接的动态列表。我不希望将敏感信息作为GET参数传递回服务器,而是希望单击超链接来调用一个函数,在该函数中我可以传递参数,然后执行POST。
以下是生成列表的代码的相关部分:
<!-- Page -->
<div data-role="page" data-add-back-btn="false">
<!-- Content -->
<div data-role="content" data-theme="c">
<ul data-role="listview" data-inset="true" data-filter="true" data-autodividers="false">
<%
for (int i=0; i<srVector.size(); i++) {
sr = (SR)srVector.get(i);
%>
<li>
<a href="/myServlet?cmd=getDetails&srId=<%=sr.SR_ID%>&empCode=<%=empCode%>"><h3><%=sr.ACCT_NAME%></h3></a>
</li>
<%
}
%>
</ul>
</div> <!-- End Content -->
如果有任何帮助,我将不胜感激。
你可以这样做:
您的锚:
// you can use whatever selector you like
// this example use [data-post-link] attribute
<a href="url/to/send/to" data-post-link="send-form" data-id="<%=sr.SR_ID%>">send me</a>
将jquery回调绑定到锚点:
// you can use whatever selector you like
$('[data-post-link]').on('click', function() {
send(this);
});
这就是发送功能:
var send = function(element) {
var value = {
// you can put any data you want
'id': $(element).attr('data-id')
};
$.ajax({
type: "POST",
url: $(element).attr('href'),
data: value // value object created above
});
};
但是,你的敏感数据无论如何都会被暴露,因为这样你就必须把它打印在标记中,任何人都可以看到它
即使没有,也有人可以在你的js回调函数体中看到它。
有两种选择:
这些数据真的不敏感(是吗?有人会用这些数据破解你的应用程序吗?偷东西吗?意外使用它吗?)
如果答案是"是",那么您应该验证数据是否"真的"来自您。只是不要自己去实现它。您选择的框架肯定有内置的CSRF保护机制。这里有一个链接到spring框架中关于它的文档:spring框架CSRF
你没有说你使用的是什么框架,但在谷歌上搜索任何框架都应该很容易。
这里还有一个用于纯JSP servlet的CSRF保护过滤器-OWASP CSRFGuard项目。(安装和配置在站点底部。)
相关文章:
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 如何在Javascript函数调用中循环变量
- Javascript:应为赋值或函数调用,但实际看到的却是表达式
- 如何远程检查JavaScript应用程序的函数调用堆栈
- javascript函数调用不起作用
- 为什么这个函数调用会破坏程序并导致未定义的变量
- 如何通过函数调用设置图像的src
- 从全局函数调用Ember控制器上的方法
- 为什么Jquery$.ajax在函数调用中触发所有statusCode,即使调用成功
- JavaScript函数调用(arg1)(arg2)
- 打印链接时,将javascript函数调用到链接中
- 在函数调用中封装数据除了隐藏数据之外还有什么优点
- 无法从JavaScript中的函数调用对象属性
- 对中的函数调用进行排序是回调的唯一方法
- 函数调用方法有什么用
- Javascript:JSHint:应为赋值或函数调用,但实际看到的却是表达式
- HTML5(Bootstrap)通过函数调用运行动画
- 函数调用不起作用
- 函数中的Javascript函数调用