Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Grails:Page-won';完成Ajax调用后不能重定向_Javascript_Ajax_Grails - Fatal编程技术网

Javascript Grails:Page-won';完成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

这是我的ajax调用:

在我的控制器中,最后有一条重定向指令:

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响应?啊,使用远程功能部分,这很有意义,感谢您更新答案。