今天我将给大家介绍《如何发送js FORMData》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!
问题内容
我正在尝试从 formdata 检索数据
js端ajax请求
function sendform()
{
let form=document.getelementbyid("myform");
var formdata = new formdata();
for(var i=0; i<form.length; i++)
{
formdata.append(form[i].name, form[i].value);
}
var xmlHttp = new xmlhttprequest();
xmlhttp.onreadystatechange = function()
{
if(xmlhttp.readystate == 4 && xmlhttp.status == 200)
{
console.log(xmlhttp.responsetext)
}
}
xmlhttp.open("post", url);
xmlhttp.setrequestheader("content-type", "multipart/form-data");
xmlhttp.send(formdata);
}
从 Go 端
func login(w http.ResponseWriter, r *http.Request) {
r.ParseForm()
username:= r.FormValue("username") // Data from the form
passWord:= r.FormValue("password")
fmt.Println(username,password) //getting empty
}
我也尝试过在邮递员中使用表单数据选项,但得到相同的结果,但是 在 PHP 中它工作正常...在 go lang 中,我不知道如何处理 multipart/form-data。
解决方案
通常,XMLHttpRequest 将读取 FormData 对象并从中生成 Content-Type 标头。
在这里,您通过显式设置 Content-Type 来覆盖它,但缺少强制的 boundary 参数,因此无法解码多部分正文。
删除引用的行。