V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
varzy
V2EX  ›  问与答

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

  •  
  •   varzy · Jan 15, 2018 · 3618 views
    This topic created in 3036 days ago, the information mentioned may be changed or developed.

    一个 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 replies    2018-01-15 16:21:24 +08:00
    tushankaka
        1
    tushankaka  
       Jan 15, 2018
    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();
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2760 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 15:38 · PVG 23:38 · LAX 08:38 · JFK 11:38
    ♥ Do have faith in what you're doing.