Laravel+ IE + Axios = "Promise is undefined."



我有以下代码使用 Axios 在 Laravel 中运行 AJAX 请求:

axios.post('Ajax/upload',{key:this.key})
.then(function(response)
{
console.log(response);
}).catch(function(response) {
console.log(response)
});

它在Chrome中工作正常,但是在Internet Explorer中,我只收到以下错误:

Promise is udefined.

在应用中.js文件设置断点:

var chain = [dispatchRequest, undefined];
var promise = Promise.resolve(config);

我在package.json文件中有以下软件包:

{
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"axios": "0.18",
"bootstrap": "4.0.0",
"cross-env": "^5.1",
"jquery": "3.3.1",
"laravel-mix": "^1.0",
"noty": "3.1.4",
"pace-js": "1.0.2",
"vue": "^2.5.7"
},
"dependencies": {
"popper.js": "^1.14.4"
}
}

我需要添加任何软件包才能使 Axios 在 Internet Explorer 中工作吗?还是有其他解决方法?

感谢您的任何帮助!

IE不支持开箱即用的承诺,你需要一个polyfill。有几种可供选择。MDN的承诺页面链接到这个。Axios自己的文档链接到这个文档。

相关内容

最新更新