【踩坑记】Postman能够请求成功获取到参数,前端axios请求的却报错

前端在做项目的时候会遇到后端是第三方人员开发的接口,由于前期沟通不是很明确其中会出现很多不
知名的前端bug存在,这不今天在做一个智能垃圾桶系统的时候就遇到一个问题;

 

问题描述:
对方给的Postman测试用例,后端接收的数据是请求头header需要x-www-form-urlencoded格式,在
Postman里面用数据能正常返回;

然而拿到前端Vue里面去请求就报错500;

一顿研究没整明白,后来问了一下big佬才知道x-www-form-urlencoded格式的数据就像get请求一样需要
拼接到url里面的。
big佬给了个解决方案如下:

this.$axios({
    method: "post", url: _API_Url,
    data: param,
    headers: {
        "Content-Type": "application/x-www-form-urlencoded"
    }, transformRequest: [(data) => {
        let ret = "";
        for (let it in data) {
            ret += encodeURIComponent(it) + "=" + encodeURIComponent(data[it]) + "&";
        }
        return ret;
    }]
}).then((res) => {
    if (res.data.status == 200) {
        this.getListDate(this.pageSize, this.currentPage);
    }
});

 

总结:这样虽然能实现功能,但是建议还是叫后端弄成json格式的方法传

 

posted @ 2020-09-11 14:31  蜗牛snail  阅读(11114)  评论(0编辑  收藏  举报
蜗牛前端 蜗牛文学