html - POST方法的默认浏览器表单行为是什么?

标签 html go post browser

通常,在制作Web应用程序时,我使用JSON API和SPA,但是我正在尝试学习如何在Go中使用更简单的服务器端模板化方法和默认表单行为。

我正在做的事情与here非常相似。唯一的区别是,为了简单起见,我将action更改为"/"并从同一处理程序处理GET和POST(按方法类型过滤)。

服务器端模板

<form action="/" method="post"   >

         ...

        <div class="form-group">
            <label for="myname">Dev Name</label>
            <input type="text" class="form-control" id="myname" name="myname" value="{{.MyDname}}">
        </div>

        <button type="submit" class="btn btn-primary">Update</button>
        </form>

服务器端
func MainPage(w http.ResponseWriter, r *http.Request) {
    fmt.Println("method:", r.Method) //get request method
    if r.Method == "GET" {
        t, err := template.New("RTL Page").Parse(page)
        if err != nil {
            log.Fatal(err)
        }
        err = t.Execute(w, State)
        if err != nil {
            log.Fatal(err)
        }
    }

    if r.Method == http.MethodPost {
        r.ParseForm()
        ...
    }
}

初始网页呈现良好,数据在POST中正确发送,我仅用200回答POST,但随后我的网页空白。

如何告诉浏览器保留或重新呈现原始页面?我是否需要向POST发送HTML响应? 200以外的东西?

最佳答案

您要问的是HTTP的基本操作。客户端发送一个请求,服务器响应该请求。如果客户端是浏览器,则浏览器显示响应。

对于GET请求,浏览器将GET请求发送到服务器,服务器以HTML页面响应,然后浏览器显示它。

对于POST请求,浏览器将发送POST请求以及表单中提交的值,并且服务器应以HTML页面作为响应,以便浏览器可以支付它。显示的响应将是POST响应,因此,如果您重新加载该页面,它将尝试重新提交表单。

关于html - POST方法的默认浏览器表单行为是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58189164/

相关文章:

html - 可滚动的多级水平菜单

html - 如何使 z-index 与位置 : relative; 一起工作

html - 试图使大背景图像保持居中,自动边距居中的内容 div,但 bg 图像不应该影响布局

go - 如何在 go 中使用模板进行排名

java - JSOUP + 多部分/表单数据响应

Javascript 多个 onClick() 函数可以在一次只需要 1 个时同时运行

Azure WebSocket 无法与 Go httpPlatformHandler 一起使用

go - 当其中一个关闭时交换 websocket 连接

php - 在php中的数组中发布数据

java - 使用 Apache 异步 http 客户端进行 Http POST + 身份验证