2013-01-17 98 views

回答

9

有一個關於圍棋創建Web應用程序在這裏很好的底漆:http://golang.org/doc/articles/wiki/

用於處理POST在saveHandler函數給出的例子:

func saveHandler(w http.ResponseWriter, r *http.Request) { 
    title := r.URL.Path[lenPath:] 
    body := r.FormValue("body") 
    p := &Page{Title: title, Body: []byte(body)} 
    p.save() 
    http.Redirect(w, r, "/view/"+title, http.StatusFound) 
} 

而不是重定向在你的情況,只是返回一個字符串例如。

func saveHandler(w http.ResponseWriter, r *http.Request) { 
    value := r.FormValue("inputVal") 
    err := saveFunction(value) 
    if err == nil { 
     fmt.Fprintf(w, "OK") 
    } else { 
     fmt.Fprintf(w, "NG") 
    } 
} 

func main() { 
    http.HandleFunc("/", indexHandler) 
    http.HandleFunc("/save", saveHandler) 
    http.ListenAndServe(":8080", nil) 
} 

..和(由於您使用jQuery),以作爲http://api.jquery.com/jQuery.post/所示回調處理:

$.post('/save', {inputVal: "banana"}, function(data) { 
    if(data == "OK") { 
    alert("Saved!"); 
    } else { 
    alert("Save Failed!"); 
    } 
}); 

如果你想返回JSON,你需要學習如何統一你的數據,然後像返回上面的字符串那樣返回。

這裏是向JSON文檔的鏈接:http://golang.org/pkg/encoding/json/#Marshal

一個好辦法來熟悉如何使用它是對http://play.golang.org左右一齣戲,打包和解包結構,並打印出來。這裏有一個例子:http://play.golang.org/p/OHVEGzD8KW