2020-01-03 原生js中form表单提交的数据的格式

JavaScript013

2020-01-03 原生js中form表单提交的数据的格式,第1张

第一次写这种文章。

1.    原生js中,form表单在提交数据的时候默认的编码格式是application/x-www-form-urlencoded

2.    如果表单中有文件需要上传,那么必须在form元素中添加除了action和method(如果是get请求,可以不添加method属性。默认情况下,form表单以get方式提交表单数据)之外的第3个属性enctype,并且设置enctype="multipart/form-data"。

参考页面: HTML

在开发过程中后端要求请求方式为post,但传输的数据格式为form表单formdata形式的。

在用axios插件请求数据时实现上述请求,可以添加 params 属性,但是这种方式会在请求url后面拼接请求参数,与post请求有些不符。

可以手动构建一个FormData进行表单提交,代码如下:

var form = new FormData()

//添加参数

form.append('name', 'jack')

form.append('age', 20)

//使用xmlhttprequest发起请求

var xhr = new XMLHttpRequest()

xhr.open('post', '这里添上请求的url', true)

xhr.onreadystatechange = function() {

    if(xhr.readyState == 4) {

        //成功

    }

}

//执行请求

xhr.send(form)