使用jquery表单提交时如何从golang重定向到另一个模板?

我正在使用表单提交 jquery 到 html 页面。数据成功传送到我的后端 beego(golang framework) 控制器。运行某些功能后,控制器必须决定下一步重定向的位置。但这被jquery阻止了。如何使用 go 代码覆盖 jquery 和重定向?


我的剧本


$().ready(function() {

    $("#signupForm").validate({

        rules: {

            fullname: "required"                

        },

        messages: {

            fullname: "Please enter your full name"

        },

        submitHandler: function(form){

            $(form).ajaxSubmit({

                    url: '/add_user',

                    type: 'POST',

                    dataType: 'html',

                    data : $( "#signupForm" ).serialize(),

                    success : function(data) {


                    }

            });

            return false

        }

    });

});

我的代码


status := user.AddUserAndCompany(company)

switch status {

case true:

    this.Data["Website"] = "beego.me"

    this.Data["Email"] = "astaxie@gmail.com"

    this.TplName = "index.tpl"

case false:

    this.Data["ErrorMessage"] = "ServerConnectionError"

    this.Layout = "layouts/header_logout.html"

    this.TplName = "templates/registration.html"

}


Qyouu
浏览 118回答 2
2回答

吃鸡游戏

我最终做的并不是一个完美的方法。但它解决了我的问题。所以我正在分享它。我欢迎针对此问题的所有建议和任何其他解决方案。switch dbStatus {    case 0://db Error        dataToClient = "Server Connection Error"        this.Ctx.ResponseWriter.Write([]byte(dataToClient)) //Error_msg_1    case 1://Email already in use        dataToClient = "EmailError"        this.Ctx.ResponseWriter.Write([]byte(dataToClient)) //Error_msg_2    case 2://UserName already in use        dataToClient = "UserNameError"        this.Ctx.ResponseWriter.Write([]byte(dataToClient)) //Error_msg_3    case 3://Everything is fine        if user.UserType == 0 { //Choosing the url            dataToClient = "/admin_home" //url_1            this.Ctx.ResponseWriter.Write([]byte(dataToClient))        } else {            dataToClient = "/user_home" //url_2            this.Ctx.ResponseWriter.Write([]byte(dataToClient))        }    }我没有成功找到从后端重定向的方法。所以我编码从后端选择url路径并将其发送到前端this.Ctx.ResponseWriter.Write([]byte(dataToClient))现在在前端我做了以下事情:$("#signupForm").validate({            rules: {                fullName: "required"            },            messages: {                fullName: "Please enter your full name"            },            submitHandler: function(form){                $(form).ajaxSubmit({                        url: '/add_user',                        type: 'POST',                        dataType: 'html',                        data : $( "#signupForm" ).serialize(),                        success : function(data) {                            //Checking whether the data from back-end is an url or not...                             if (data.charAt(0) === '/'){ // if url                                window.location.href = data;                            }else{ //else error message                                document.getElementById('regError').innerHTML = data;                            }                        }                });                return false            }        });    });

慕田峪4524236

你不能用 c.Redirect(redirectURL, 302) 重定向到一个全新的控制器,其中 'c' 是你的控制器吗?我基本上对“/”、“/register”等使用不同的控制器。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go