2 回答
TA贡献1829条经验 获得超7个赞
我最终做的并不是一个完美的方法。但它解决了我的问题。所以我正在分享它。我欢迎针对此问题的所有建议和任何其他解决方案。
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
}
});
});
TA贡献1875条经验 获得超5个赞
你不能用 c.Redirect(redirectURL, 302) 重定向到一个全新的控制器,其中 'c' 是你的控制器吗?
我基本上对“/”、“/register”等使用不同的控制器。
- 2 回答
- 0 关注
- 117 浏览
添加回答
举报