doubleyong
管理员
管理员
  • 最后登录2025-12-02
  • 发帖数1198
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:7198回复:0

[vue]axios在IE浏览器中报错,不支持promise问题

楼主#
更多 发布于:2018-06-21 16:16
项目中,使用了axios , 在google 中,都是正常的,但是在IE中却取不了数据,提示:Promise未定义,错误如下:

图片:promise_error.png


原因:axios 使用了promise , 而使用的IE11中不支持promise
解决方案:
      如果是项目开发:
     百度之后发现,可以利用插件’es6-promise’的polyfill()方法来实现兼容,具体步骤如下:
  1. npm install -g es6-promise
  2. 在使用axios方法之前,导入es6-promise,并调用 polyfill()方法(本人将所有的异步请求放置在了vuex的actions对象中,所以是直接写在actions.js文件中),即:
    import promise from 'es6-promise' ; 
    promise.ployfill();

如果,直接引用的文件, 也直接引用es6-promise.js .

<script src="https://cdn.bootcss.com/es6-promise/4.1.1/es6-promise.auto.js"></script>

这里可以es6-promise.js , 也可以用es6-promise.auto.js .
      两者的区别:
      es6-promise是个库而已,不会自动polyfill;
      要想自动polyfill那么就用es6-promise.auto。

      详细区别解析 :https://www.jianshu.com/p/3c0359285d77
    上面的,代码是引用的是网上的es6-promise.auto.js . 如果想下载这个文件,可以,通过npm 命令下载对应的包。
然后在对应路径里的node_modules\es6-promise\dist 里看到对应的js,直接复制即可使用,
    如下图:

 

图片:es6_promise.png




参考:https://blog.csdn.net/LiangHui0914/article/details/78908386
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号