Javascript Grails:Page-won';完成Ajax调用后不能重定向
这是我的ajax调用:Javascript Grails:Page-won';完成Ajax调用后不能重定向,javascript,ajax,grails,Javascript,Ajax,Grails,这是我的ajax调用: 在我的控制器中,最后有一条重定向指令: def createAccount = { if(user.save(flush:true) == null){ ... } else{ .... for(int i = 0; i < categories.length; i++){ ... } println "save to databa
在我的控制器中,最后有一条重定向指令:
def createAccount = {
if(user.save(flush:true) == null){
...
}
else{
....
for(int i = 0; i < categories.length; i++){
...
}
println "save to database: successful"
}
// Redirect to index action of person controller.
redirect(controller:'user', action: 'authenticate');
}
`
def createAccount={
if(user.save(flush:true)==null){
...
}
否则{
....
对于(int i=0;i
它不会重定向。相反,它会停留在开始的加载页面上。重定向ajax调用只重定向该调用,而不是整个页面。要重定向整个页面,您需要在JavaScript中捕获重定向的ajax调用并从JavaScript执行重定向,或者需要让页面级操作执行重定向。重定向ajax调用只重定向该调用,而不是整个页面。要使整个页面重定向,您需要在JavaScript中捕获重定向的ajax调用并从JavaScript执行重定向,或者需要让页面级操作执行重定向。如果ajax调用返回重定向,浏览器将不会重定向。如果希望在AJAX调用后将用户发送到新页面,则需要自己使用Javascript来完成。例如:
def url = createLink(controller: 'user', action: 'authenticate')
render(contentType: 'text/html', text: "<script>window.location.href='$url'</script>")
def url=createLink(控制器:'user',操作:'authenticate')
呈现(contentType:'text/html',text:'window.location.href='$url')
确保浏览器呈现AJAX响应。使用grails标记,您应该使用
update
属性指定要更新的元素。如果AJAX调用返回重定向,浏览器将不会重定向。如果希望在AJAX调用后将用户发送到新页面,则需要自己使用Javascript来完成。例如:
def url = createLink(controller: 'user', action: 'authenticate')
render(contentType: 'text/html', text: "<script>window.location.href='$url'</script>")
def url=createLink(控制器:'user',操作:'authenticate')
呈现(contentType:'text/html',text:'window.location.href='$url')
确保浏览器呈现AJAX响应。对于grails标记,您应该使用
update
属性指定要更新的元素。页面级操作重定向是什么意思?@JamesMcMahon,所谓“页面级”,我指的是被页面调用(即普通链接)命中的控制器操作,而不是AJAX调用。主要区别在于浏览器处理响应的方式,要么像处理普通页面请求一样刷新整个屏幕,要么像处理AJAX调用一样将请求的最终结果交给JavaScript处理程序。页面级操作重定向是什么意思?@JamesMcMahon,“页面级”,我指的是被页面调用(即普通链接)而不是AJAX调用击中的控制器操作。主要区别在于浏览器如何处理响应,要么像普通页面请求一样刷新整个屏幕,要么像AJAX调用一样将请求的最终结果交给JavaScript处理程序。嗯,这对我来说不起作用,脚本块应该如何执行?您是否在浏览器中呈现AJAX响应?啊,对于远程功能部分,这很有意义,感谢您更新了答案。嗯,这对我不起作用,脚本块应该如何执行?您是否在浏览器中呈现AJAX响应?啊,使用远程功能部分,这很有意义,感谢您更新答案。