Axios 是基于 Promise 的 HTTP 网络请求库,用于浏览器和 Node.js。Axios 体积非常小,提供了一个简单易用的库,具有易于扩展的接口。
近日 Axios 发布的 1.1.0 版本更新在推送给用户后,由于包含损坏,导致数千个网站瘫痪。
根据用户提交的 issue,在 Axios v1.1.0 中,他们使用axios.get
时出现了错误,会提示 TypeError: axios.get is not a function
。这导致几乎所有请求都无法成功,因为如果按照预期的行为,axios.get
是一个有效的函数。
这名用户还附上了重现问题的方法,使用<script>
引入 axio v1.1.0,然后直接引用axios.get()
就能复现错误:
<script src="https://unpkg.com/[email protected]/dist/axios.min.js"></script>
<script>
axios.get(...)
</script>
注意:此问题没有在 v1.0.0 中复现。
从 issue 的评论可以看到,这些留言的开发者几乎全部由于此问题而导致生产环境直接崩溃。有开发者发现回滚到 1.0.0 即可解决此问题,但由于自己的 App 更新后需要审核,所以即便知道了解决方法也不能马上修复。
也有开发者认为,受此问题影响的开发者在某种程度上“不值得同情”,因为他们的生产应用在 CDN 上使用了最新(自动升级)的版本库,这是十分愚蠢的行为。
开发团队在确认问题后,次日连续发布了两个补丁更新(v1.1.1 & v1.1.2)来修复错误,建议所有用户升级至最新版本。