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

2018-01-15 14:56:49 +08:00
 varzy

一个 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

3222 次点击
所在节点    问与答
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();

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/423034

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX