前端如何修改接口报错的返回信息
<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 => {<br> const res = response.data<br> if (res.code && 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(() => {<br> store.dispatch('user/resetToken').then(() => {<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 => {<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)
分享
相关标签:
-
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