在javascipt POST之后呈现HTML页面

时间:2020-06-20 17:55:03

标签: javascript go

我有一个在Go中成功呈现的HTML表。我有:

mux := http.NewServeMux()

mux.HandleFunc("/", showTable)
mux.HandleFunc("/analyse", analyse)

http.ListenAndServe(":8080", mux)

函数showTable可以正确呈现HTML表和“确定”按钮。 HTML包含一些javascript,因此,当单击“确定”时,会将一些数据发布到/ analyse。 javascript是:

var i;
for (i = 0; i < selected.length; i++) {
        
$.post("/analyse", selected[i], function(data,status){
    //alert(data);
});
$.post("/analyse", selected1[i], function(data,status){
    //alert(data);
});
}
$.post("/analyse", "done", function(data,status){
 alert(status);
});

selected[]selected1[]包含表中当前选定的有效数据。

analyse函数如下所示:

func analyse(w http.ResponseWriter, r *http.Request) {
    log.Println("In analyse")
    if r.Method == "POST" {
        buf := new(bytes.Buffer)
        buf.ReadFrom(r.Body)
        newStr := buf.String()

        log.Println("Here's the body", newStr)
        if newStr == "done" {
          log.Println("Done detected")
          io.WriteString(w, "Some valid HTML")
        }
    }
}

运行代码时,将呈现HTML表以及“确定”按钮。单击“确定”按钮后,将调用analyse函数,检测到POST,并成功执行行log.Println("Done detected")。此时,我想向页面呈现“一些有效的HTML”(在我的代码中这实际上是有效的HTML)。在我看到的示例中,我认为通过http.ResponseWriter w编写将呈现“一些有效的HTML”,但事实并非如此。我还尝试在javascript中发布到“ /”并在Go代码中检测到POST事件。同样,我可以检测到该事件,但是无法将HTML呈现到页面。 感谢您在理解POST事件后如何成功呈现HTML方面提供的帮助。

0 个答案:

没有答案
相关问题