我试图通过jquery ajax发送golang中的post params。也许我错过了一些明显的东西。这是我的代码片段
$('form').submit(function(e) {
e.preventDefault();
var jsn = {
vvv = $("#textinput").val();
};
console.log(jsn);
$.ajax({
type: "POST",
async : true,
//enctype: 'multipart/form-data',
url: "/homepage",
data: jsn,
processData: true,
contentType: "application/json",
cache: false,
}).done(function(response){
$("#resultdiv").html(response);
});
});
这是我的golang代码:
func MainConversion(w http.ResponseWriter, r *http.Request) {
r.ParseForm()
text := r.FormValue("vvv")
fmt.Fprint(w, string(text))
return
})
我试过f.formValue(),r.Form.get()。提前致谢
答案 0 :(得分:3)
您已使用JSON正文发送了请求,但ParseForm
上的*http.Request
无法处理JSON。您需要读取请求的正文并将其解析为JSON,或者不要将您的正文作为JSON发送。
func MainConversion(w http.ResponseWriter, r *http.Request) {
var body = make(map[string]string)
if err := json.NewDecoder(r.Body).Decode(&body); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
text := body["vvv"]
w.Write([]byte(text))
}
答案 1 :(得分:0)
您的JS代码段包含语法错误,因此我假设没有请求到达您的golang API。
var jsn = {
vvv = $("#textinput").val();
};
应该是:
var jsn = {
vvv : $("#textinput").val()
};