axios 使用报错 spread.js:25 Uncaught (in promise) TypeError: Cannot read property 'protocol' of undefined
造虫过程中,因调整某个引用axios的模块而引出了一个问题,完整报错如下:
spread.js:25 Uncaught (in promise) TypeError: Cannot read property 'protocol' of undefined at spread.js:25 at spread.js:25 at new Promise (
) at e.exports (spread.js:25) at e.exports (spread.js:25)
spread.js并非小编自己写的,是 npm_module 中的一个文件,理论上不应该有错,所以还是要在自己写的代码里找。
最终定位到报错的代码片段如下:
axios.post(this.api.getName, payload).then(response => {
if (response.data.code == 0) {
alert('信息已经提交');
} else {
alert('网络异常!');
}
})
小编不禁疑惑,这一段代码有什么错呢?略作思考排查可以发现,其实这一段代码是没错的。
问题原因在于 this.api.getName 这个变量不存在。远古代码,重构时难免丢三落四,补上就好。
let api = {
getName: 'http://localhost:8000/getName'
}
至于为什么变量不存在会报这样一个错误而不是 undefined,小编就不得而知了。