前端如何修改接口报错的返回信息

提问 3 1011
邮箱用户_qilbq
邮箱用户_qilbq LV1 2021年5月31日 18:17 编辑
点击群号免费加入社区交流群:367346704
<p id="descriptionP"><p>比如登录获取token 接口,当用户输入帐号密码错误时,页面提示【request failed with status code 400】,目前需求是想要把这个提示替换成【帐号或密码登录错误】。</p><p>前端这里在找到 src\utils文件夹里request.js 公用请求文件,发现,如果状态码400 直接进入error(下方加粗部分)</p><pre><code><br>service.interceptors.response.use(<br> response =&gt; {<br> const res = response.data<br> if (res.code &amp;&amp; res.code !== 200) {<br> <br> Message({<br> message: res.message || 'Error',<br> type: 'error',<br> duration: 5 * 1000<br> })<br> if (res.code === 50008 || res.code === 50012 || res.code === 50014) {<br> MessageBox.confirm('您已注销,可以取消以停留在此页,或重新登录', '确认注销', {<br> confirmButtonText: '重新登录',<br> cancelButtonText: '取消',<br> type: 'warning'<br> }).then(() =&gt; {<br> store.dispatch('user/resetToken').then(() =&gt; {<br> location.reload()<br> })<br> })<br> }<br> return Promise.reject(new Error(res.message || 'Error'))<br> } else {<br> return res<br> }<br> },<br> <span style="font-weight: bold;">error =&gt; {<br> console.log(error.message) // for debug<br> console.log(error) // for debug<br> Message({<br> message: error.message,<br> type: 'error',<br> duration: 5 * 1000<br> })<br> return Promise.reject(error)<br> }</span><br>)</code></pre><p><span style="font-family: monospace; font-size: 12px; white-space: pre-wrap; background-color: rgb(241, 241, 241);">console.log(error)发现只有【</span>Request failed with status code 400】这句话,那我如何判断用户是帐号密码输入错误的报错还是其他报错,其他接口(该框架的)是不是也是如此?<br></p><p>第一次提问,如有不规范的地方,及时提醒,谢谢</p></p><p><br></p>
收藏(0)  分享
相关标签: 前端 javascript
3个回复
  • 站长
    2021年5月31日 23:01
    根据request.js的导入信息,可知使用了axios。【request failed with status code 400】是axios返回,不是后端返回。捕获axios状态和返回信息详看网址:https://www.npmjs.com/package/axios,处理代码示例: [pre] error => { console.log(error.response.status); console.log('err' + error) // for debug if (error.response.status === 400) { Message({ message: '中国', type: 'error', duration: 5 * 1000 }) } else if (error.response.status === 503) { Message({ message: '美国', type: 'error', duration: 5 * 1000 }) } return Promise.reject(error) } [/pre]
    1 1
  • 站长
    2021年5月31日 23:02
    如果是业务请求,处理返回信息的代码示例: [pre] updateSysUser(tempData).then(response => { if (response.message === 'success') { this.disabledStatus = false this.dialogFormVisible = false this.$message({ message: this.$t('common.edit-success'), type: 'success', duration: 2000 }) this.handleReset() } else { this.handleWarning(response) } }) [/pre]
    1 0
相关帖子
点击图片或者QQ扫码加入社区官方交流群