有没有办法

时间:2013-07-16 14:05:50

标签: security grails http-post

我正在使用

<g:link ...
为了安全起见,我希望将其作为POST而不是GET发送的按钮标记。

有办法做到这一点吗?我不能用

<g:actionSubmit 

因为我正在使用Twitter Bootstrap的Glyphicons(即我需要将图标放在标签之间,它不能进入​​值属性)

<g:link class="btn btn-success" action="someAction" id="class.id"> <i class="icon-ok"></i> Save </g:link>

所以,我需要一个链接,我可以将ID作为POST传递,并包含一个标记结构,如:

<g:someTag ... > SOME LABEL </g:sometag>

感谢您对此事的任何帮助!

2 个答案:

答案 0 :(得分:3)

另一种方法是使用g:remoteLink。它默认使用POST

<g:remoteLink action="someAction" id="${someObj.id}" update="saveStatus">Save</g:remoteLink>

答案 1 :(得分:0)

1.我的建议是在g:link之前使用Ajax它自己处理对动作和控制器的调用

像:

<g:link class="btn btn-success"  id="class.id" onclick='UsingPost();'>SOME LABLE HERE </g:link>
<script type='text/javascript'>
function UsingPost(){
    jQuery.ajax({
        type:'POST',
        data:{"model":${pleaseUseTheModelyouHaveLoaded}"}, 
        url:'${createLink(action: 'save')}',
        success:function(data,textStatus){
        jQuery('#success').html(data);},
        error:function(XMLHttpRequest,textStatus,errorThrown){}
        });
}
</script>

或参考这篇文章 https://stackoverflow.com/questions/17360606/grails-spring-security-core-ajax-authentication