【问题标题】:Is there a way to make <g:link calls POST instead of GET?有没有办法让 <g:link 调用 POST 而不是 GET?
【发布时间】:2014-04-18 02:03:30
【问题描述】:

我正在使用一个

<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>

感谢您在此问题上的任何帮助!

【问题讨论】:

标签: security grails http-post


【解决方案1】:

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

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

【讨论】:

  • 请注意,对于现在遇到此问题的任何人,remoteLink 现已弃用,并将从 Grails 的未来版本中删除
  • 而且使用remoteLink似乎没有重定向。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多