我正在开发一个已经有布局css,bootstrap v.3和index.html的webapp。我已经成功加载了Golang并启动并运行该项目。我已经嵌入了一个注册按钮,点击该按钮后,应该从处理http请求的server.go文件中调用Go函数。
$(document).ready(function() {
$('#signup').on('click', loginHandler);
});
我有一个像这样编写的server.go文件:
package main
import (
"net/http"
"github.com/bmizerany/pat"
)
func init() {
m := pat.New()
m.Get("/signup", http.HandlerFunc(loginHandler))
m.Get("/", http.HandlerFunc(rootHandler))
http.Handle("/", m)
}
func rootHandler(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w, r, r.URL.Path[1:])
}
func loginHandler(w http.ResponseWriter, r *http.Request) {
}
所以问题是点击带有注册ID 的按钮实例,如何在server.go文件中触发golang loginHandler 功能? 对此有任何想法将不胜感激。
答案 0 :(得分:3)
您正在寻找的是AJAX( A 同步 J avascript A nd X ml)。它是一种JavaScript技术,允许您发出异步HTTP请求以从服务器获取数据。看来你正在使用jQuery,并使用jQuery与AJAX,看起来像这样:
$.ajax({
url: "http://www.example.com/signup",
data: {username: "whatever"} //If the request needs any data
}).done(function (data) {
// Do whatever with returned data
});
如果您愿意,可以使用专门用于GET
和POST
的功能:
$.get("url: "http://www.example.com/signup", function (data) {
// Do whatever with the returned data
});
$.post("url: "http://www.example.com/signup", {username: "whatever"}, function (data) {
// Do whatever with the returned data
});
AJAX甚至可以在没有jQuery的情况下执行:
var req = new XMLHTTPRequest();
req.addEventListener("load", function (data) {// Do whatever});
req.open("get", "http://example.com", true);
req.send();
如果你需要AJAX的参考资料,这里有几个网站:
<强>的jQuery 强>
https://api.jquery.com/jQuery.ajax/
https://api.jquery.com/category/ajax/shorthand-methods/
https://api.jquery.com/category/ajax/
Vanilla JavaScript
https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest