axios 使用报错 spread,js25 Uncaught (in promise) TypeError Cannot read property 'protocol' of undefined

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 (<anonymous>)
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,小编就不得而知了。

版权声明

弈心博客


本文首发site_name,转载请附上博文链接!