axios传递数据类型

494 阅读1分钟

axios前端默认传递的数据类型是application/json,可以在headers中进行设置,默认传递格式为application/json。

如果传递application/json数据类型,需要利用JSON.stringfy将JSON对象转为JSON字符串,如下图:

function example(usernameValue,passwordValue) {
    return axios.request({
        method:'post',
        url:baseUrl+'api/login',
        data:JSON.stringfy({
            username:usernameValue,
            password:passwordValue
        })
    })
}

如果传递application/x-www-form-urlencoded数据类型,需要利用qs.stringfy将对象转为url字符串,如下图:

function example(usernameValue,passwordValue) {
    return axios.request({
        method:'post',
        url:baseUrl+'api/login',
        data:qs.stringify({
            username:usernameValue,
            password:passwordValue
        }),
        headers:{'content-type':'application/x-www-form-urlencoded'}
    })
}

如果传递multipart/form-data数据类型,需要利用FormData将字符串转为formdata格式,如下图:

function example(file) {
    //将file转成表单
    const formData = new FormData();
    formData.append('file',file);
    return axios.request({
        method:'post',
        url:baseUrl+'file',
        data:formData,
        headers:{'content-type':'multipart/form-data'}
    })
}

注意JSON.stringfy和qs.stringfy区别:

    const data = {name:"zhangsan",age:"12"}
    JSON.stringfy(data)  => "{'name':'zhangsan','age':'12'}"
    qs.stringfy(data) =>"name=zhangsan&age=12"