V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
varzy
V2EX  ›  问与答

求助一个 vue-cli 项目兼容 ie9 时遇到的坑,给第一个解决的人送一杯星巴克

  •  
  •   varzy · 2018-01-15 14:56:49 +08:00 · 3289 次点击
    这是一个创建于 2509 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一个 vue-cli 新起的项目,已经在 main.js 开头引入了 babel-polyfill 和 es6-promise,接口也已经使用 nginx 反代,但 axios 发 post 请求就是不好使。最神奇的是之前的项目和这次新起的项目配置一毛一样,但旧项目就支持 ie9 下 axios 的 post 请求。

    贴一下核心代码:

    main.js:

    import 'babel-polyfill'
    import 'es6-promise/auto'
    

    axios 配置:

    const axios = Axios.create()
    
    axios.defaults.baseURL = baseURL
    axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
    
    export default axios
    

    发送请求:

    this.$axios.post('/user/login', qs.stringify({
      phone: this.form.phone,
      password: this.form.password
    }))
      .then()
      .catch()
    

    ie9 下的请求头、请求体和报错:

    https://i.imgur.com/HvXnsDK.png

    https://i.imgur.com/7kCJoxt.png

    https://i.imgur.com/6BmbPJh.png


    如果各位想要了解更多信息也可以加小弟的微信:zxyy63630

    1 条回复    2018-01-15 16:21:24 +08:00
    tushankaka
        1
    tushankaka  
       2018-01-15 16:21:24 +08:00
    https://juejin.im/post/59fa9257f265da43062a1b0e?utm_source=weibo&utm_campaign=admin

    Q:我用了 axios , 为什么 IE 浏览器不识别(IE9+)那是因为 IE 整个家族都不支持 promise, 解决方案:

    npm install es6-promise

    // 在 main.js 引入即可
    // ES6 的 polyfill
    require("es6-promise").polyfill();
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5469 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 08:42 · PVG 16:42 · LAX 00:42 · JFK 03:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.