微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何重定向到另一个网页

如何解决如何重定向到另一个网页

我想做什么
我想在注册过程成功后重定向到索引页面

有什么问题
我填写用户名和密码后,页面不会重定向到索引页面,而是停留在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 举报,一经查实,本站将立刻删除。