如何解决如何重定向到另一个网页
有什么问题
我填写用户名和密码后,页面不会重定向到索引页面,而是停留在signup.html。
我做了什么
我怀疑 createuser 函数返回 nil 并导致错误,但我无法解决。
// User model declaration
type User struct {
gorm.Model
Username string `form:"username" binding:"required" gorm:"unique;not null"`
Password string `form:"password" binding:"required"`
}
// User sign up
func createuser(username string,password string) []error {
passwordEncrypt,_ := crypto.PasswordEncrypt(password)
db := gormConnect()
defer db.Close()
// Insert
if err := db.Create(&User{Username: username,Password: passwordEncrypt}).GetErrors(); err != nil {
return err
}
return nil
}
func main(){
router := gin.Default()
router.LoadHTMLGlob("front/*.html")
dbInit()
// index
router.GET("/",func(c *gin.Context) {
b_models := dbGetAll()
num := dbGetNum()
sumQuantity := dbGetSumQuantity()
sumPrice := dbGetSumPrice()
c.HTML(200,"belongings.html",gin.H{"b_models": b_models,"num": num,"sumQuantity": sumQuantity.Totalquantity,"sumPrice": sumPrice.Totalprice})
})
// User sign up page
router.GET("/signup",func(c *gin.Context) {
c.HTML(200,"signup.html",gin.H{})
})
// User sign up process
router.POST("/signup",func(c *gin.Context) {
var form User
// Validation
if err := c.Bind(&form); err != nil {
c.HTML(http.StatusBadRequest,gin.H{"err": err})
log.Println("fail to login because your info is invalid")
c.Abort()
} else {
username := c.PostForm("username")
password := c.PostForm("password")
// Process to reject duplicate registered users
if err := createuser(username,password); err != nil {
c.HTML(http.StatusBadRequest,gin.H{"err": err})
c.Abort()
} else {
log.Println("success to signup!")
c.Redirect(302,"/")
}
}
})
}
解决方法
您可以在 javascript 中更改页面,我不明白您为什么要让后端做前端的事情。
window.location.href = "the_page.html"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。