美文网首页
记一次jquery- ajax转vue-aixos 踩坑

记一次jquery- ajax转vue-aixos 踩坑

作者: 鹿啦啦zz | 来源:发表于2020-05-13 11:36 被阅读0次

问题是什么

项目由jquery 转 vue
ajax 请求改成 axios
移植代码get 问题不大,但是post请求无法正确取到数据,甚至出现一请求后台就挂的情况

问题排查

1. 是我参数传错了嘛?

不会吧,copy过来的呀。对比了一下参数内容,一模一样的呀

2. 是我axios的写法写错了吗?

不是,因为写错的话,应该连数据都无法返回,但是现在的情况是,我不管发什么样的参数过去,都是返回一样的数据,说明前端传值无效

3. 再重新看下参数

旧框架
新框架

发现了两处不同

请求头中的Content-Type不一样
一个是application/json,一个是application/x-www-form-urlencoded

解决问题

只要发现问题所在,这就好办了

  1. 在拦截器中,设置Content-Typeapplication/x-www-form-urlencoded
//配置发送请求前的拦截器 可以设置token信息
axios.interceptors.request.use(
    config => {
        config.headers['Content-Type'] = "application/x-www-form-urlencoded";
        return config;
    },
    error => {
        return Promise.reject(error);
    }
);

可是改完测试发现没有改动到,请求头中的Content-Type依然是application/json

  1. 引入qs
    config.data = qs.stringify( config.data)
//配置发送请求前的拦截器 可以设置token信息
axios.interceptors.request.use(
    config => {
        config.data = qs.stringify( config.data);//关键代码
        return config;
    },
    error => {
        return Promise.reject(error);
    }
);

到此终结撒花,完美解决

题外话qs 是何方神圣

qs.stringify
基本用法

// qs.stringify 则和 qs.parse 相反,是把一个参数对象格式化为一个字符串。
let params = { c:'b', a: 'd' };
qs.stringify(params) 
// 结果是
‘c=b&a=d‘

参考文章
https://segmentfault.com/a/1190000015261229?utm_source=tag-newest
qs简介

相关文章

  • 记一次jquery- ajax转vue-aixos 踩坑

    问题是什么 项目由jquery 转 vueajax 请求改成 axios移植代码get 问题不大,但是post请求...

  • AJAX-全集

    同步+异步 Ajax同步+异步 JavaScript之(AJAX) JQuery之(AJAX) JQuery-有f...

  • [ANR Warning]onMeasure time too

    ConstraintLayout 踩坑记一次封装组合控件时的坑,我才用了集成 ConstraintLayout 来...

  • ajax踩坑

    嵌套使用如果嵌套的ajax请求的数据有依赖关系,同步执行会导致错误出现。 使用上述选项避免嵌套的同时执行。

  • springboot集成swagger2深坑

    记录一次swagger2踩坑记,网上资料杂乱而不完整,自己踩的坑还算比较多,记录下自己的解决历程 一、首次来看看遇...

  • 移动端的头尾固定问题

    新起了个移动端项目,在头位固定问题上又踩了一次踩过的坑。爬起来之后弹弹土,乖乖的坐下来码字,把踩坑换来的经验教训记...

  • Android Material Design 踩坑记(2)

    Android Material Design 踩坑记(1) CoordinatorLayout Behav...

  • jquery设计思想书目录

    jQuery-选择网页元素 jQuery-改变结果集 jQuery-链式操作 jQuery-元素的操作:取值和赋值...

  • 记一次踩坑

    下面这张图有什么交互问题吗(右边的“人员分类”部分最多有20项)? 嗯,好像并没有太大问题。然而... 当开发完毕...

  • Deepin使用踩坑记

    1. 前言 很喜欢Deepin,奈何坑太多,不过不怕,踩过去~ 2. 踩坑记 2.1 Deepin重启后文件管理器...

网友评论

      本文标题:记一次jquery- ajax转vue-aixos 踩坑

      本文链接:https://www.haomeiwen.com/subject/jzggnhtx.html