如何发送grails<;g:link>;参数作为职位
在我的应用程序中,当我使用如何发送grails<;g:link>;参数作为职位,grails,gsp,Grails,Gsp,在我的应用程序中,当我使用 <g:link params=[:] /> 参数显示在我不想要的URL中。 是否仍然可以像POST方法那样发送参数而不在URL中显示 谢谢处理时变为,因此传递给glink的任何参数都将始终在url中可用。 如果您不想在url中添加标签,则必须使用表单。此处有一些标签 <g:link class="btn btn-success" id="class.id" onclick='UsingPost();'>SOME LABLE HERE
<g:link params=[:] />
参数显示在我不想要的URL中。
是否仍然可以像POST方法那样发送参数而不在URL中显示
谢谢
处理时变为
,因此传递给glink的任何参数都将始终在url中可用。
如果您不想在url中添加标签,则必须使用表单。此处有一些标签
<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>
函数UsingPost(){
jQuery.ajax({
类型:'POST',
数据:{“模型”:${PleaseUsethemeodelYouhaveLoaded}},
url:“${createLink(操作:'save')}”,
成功:功能(数据、文本状态){
jQuery('#success').html(数据);},
错误:函数(XMLHttpRequest、textStatus、errorshown){}
});
}
是一个用于创建链接的标记,当您通过表单或ajax请求提交数据时,不存在带有POST参数、POST和GET(以及其他)的链接
取决于您可能生成ajax调用或表单的上下文
<g:form controller="myController" action="myAction">
<g:hiddenField name="myField" value="myValue" />
<g:submitButton name="Submit" value="Submit" class="lnk" />
</gform>
最简单的方法是使用jquery:
<g:link id="my_link">This is my link</g:link>
<script type='text/javascript'>
$('#my_link').click(function() {
$.post('/url_for_post_request');
});
</script>
和g:actionSubmit
:
<g:form method="post" action="..." name="form-name">...</g:form>
<g:actionSubmit form="form-name" action="..." value="Label"/>
您可以将
发送到控制器/操作,然后在操作中执行重定向
<g:link action="formSubmit" params="[id:3]">send</g:link>
class TestController {
def index() {
}
def formSubmit(Long id) {
// you can use the id param, or add it to flash scope
redirect action: "index"
}
}
发送
类TestController{
def索引(){
}
def formSubmit(长id){
//您可以使用id参数,也可以将其添加到flash范围
重定向操作:“索引”
}
}
因此,id参数将不会显示在结果url中。除了使用表单,没有其他选项?您也可以尝试使用WebSocket。没有HTTP,有很多方法可以做到这一点。总有一些方法可以做到这一点。但这取决于使用情况,如果您只需要使用一些参数来点击一个方法,那么在这种情况下就不会这是一个非常好的选择。请注意,当使用链接创建HTTP POST请求时,用户可能会觉得有点奇怪,因为链接(以及HTTP GET)作为一个安全的幂等操作关联。因此,它可以执行多次,这会导致相同的结果(没有副作用).另一方面,HTTP POST根据定义不是幂等的,也不安全,因此没有人会认为它会执行多次(就像这里提到的save方法)。因此,底线是,不仅因为url中的属性,还应该对GET/POST进行区分。感谢您的d回复。在g:actionSubmit操作中,我们可以提供带参数的完整url吗?您可以使用
g:form
的url
属性。参数应该作为表单中的隐藏字段传递。它应该是“elementId”而不是g:link中的“id”。