axios IE 承诺不起作用

Posted

技术标签:

【中文标题】axios IE 承诺不起作用【英文标题】:axios IE promise doesn't work 【发布时间】:2016-06-16 15:17:51 【问题描述】:

我正在使用 axios 进行 ajax 通信。 我有 IE 的问题。 IE 返回有关 Promise 的错误。 IE 对 Promise 一无所知。

我正在编写 react/redux,但我在普通 JS 中尝试了 axios,结果相同

有人可以帮我吗? 我很困惑,因为 axios 应该在 IE 8+ 上工作 我在 IE 11 (windows 10 64bit) 上试过

我的试用版是按照 axios 主页上的示例编写的

谢谢

【问题讨论】:

【参考方案1】:

如果浏览器没有 promise 实现,你必须包含一个 promise polyfill。这听起来很复杂,但确实有很好的库。

axios 文档提到它: axios 依赖于要支持的原生 ES6 Promise 实现。如果你的环境不支持 ES6 Promises,你可以 polyfill。

如果你只使用 JS 而没有转译或捆绑你可以试试es6-promise

或者如果你使用 babel,你可以使用its polyfill

【讨论】:

使用babel-polyfill时也适用于我。【参考方案2】:

Android 4.x 和 axios And Promise

android 4.X 中,我遇到了类似的问题。我通过在 webpack 配置中使用 es6-promise 来解决它:

承诺:'es6-promise'

plugins: [
    //tells webpack where to store data about your bundles.
    new BundleTracker(filename: './webpack-stats.json'),

    //makes jQuery available in every module
    new webpack.ProvidePlugin(
        $: 'jquery',
        jQuery: 'jquery',
        'window.jQuery': 'jquery',
        Promise: 'es6-promise'
    ),

    // Configure path for served CSS files ("desktop_css" will be served as /dist/desktop_css.css)
    new ExtractTextPlugin('[name].css'),
],

更多信息请看:

https://github.com/axios/axios/issues/188

是的,Promise 直到 4.4.4 才引入 Android

http://caniuse.com/#feat=promises


“承诺”未定义

https://github.com/webpack/webpack/issues/4254

【讨论】:

Promises 在 4.4 上不受支持:caniuse.com/#search=promise 你必须为此实现一个 polifill。看看github.com/stefanpenner/es6-promise 或类似的。 github.com/AlexDisler/cordova-plugin-inapppurchase/issues/…

以上是关于axios IE 承诺不起作用的主要内容,如果未能解决你的问题,请参考以下文章

承诺`终于'不起作用

$.when 承诺对象不起作用[重复]

蓝鸟承诺“promisifyAll”不起作用 - 无法读取属性“then”

带有承诺的 Redux-thunk 不起作用

Axios删除不起作用

axios 库中的超时功能不起作用