本文共 1731 字,大约阅读时间需要 5 分钟。
在Vue项目中,合理配置请求拦截器和错误处理是提升应用性能和用户体验的重要环节。本文将详细介绍如何通过拦截器实现请求头设置及错误处理,确保应用的稳定性和用户体验。
在项目中,我们使用了 Axios 进行异步数据请求。为了确保每次请求都能携带必要的令牌信息,我们配置了请求拦截器:
service.interceptors.request.use(config => { if (getToken()) { config.headers['X-Token'] = getToken() } return config}, error => { console.log(error) return Promise.reject(error)}) 该配置意味着在每次发送请求前,会自动检查是否获取到令牌(通过 getToken() 方法获取),如果有令牌,将其添加至请求头的 X-Token 属性。若没有令牌,请求将正常进行,无需额外处理。
响应拦截器用于处理服务器返回的结果。我们在项目中配置了以下响应拦截器:
service.interceptors.response.use(response => { const res = response.data if (res.code !== 20000) { Message({ message: res.message || 'Error', type: 'error', duration: 5000 }) if (res.code === 50008 || res.code === 50012 || res.code === 50014) { MessageBox.confirm('您已被登出,建议重新登录或保持在当前页面',{ confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }).then(() => { store.dispatch('user/resetToken').then(() => { location.reload() }) }) } return Promise.reject(new Error(res.message || 'Error')) } else { return res }}, error => { console.log('err' + error) Message({ message: error.message, type: 'error', duration: 5000 }) return Promise.reject(error)}) 响应拦截器主要用于处理非正常返回值。具体来说,当响应码不为 20000 时,会显示错误提示。对于特定错误码(如50008、50012、50014),会弹出确认对话框,提示用户重新登录。
通过响应拦截器,我们实现了对错误状态的统一处理。无论是正常错误还是需要重新登录的错误,都会触发相应的提示和操作流程。这种方式确保了用户能够及时了解问题,并采取相应行动。
在项目中,我们使用 Element UI 的 MessageBox 和 Message 组件来实现用户反馈。这些组件在处理大量请求时,能够显著提升用户体验。同时,通过 store 实现了状态管理,确保各组件之间的数据同步。
通过上述配置,我们实现了请求头设置和错误处理的双重优化。请求拦截器确保了每次请求的安全性,响应拦截器则有效地处理了各种错误场景。结合 Element UI 组件和状态管理模块的使用,使得整个应用更加稳定和用户友好。
这种配置方式在实际项目中具有广泛的应用价值,能够帮助开发者更好地应对各种潜在问题。
转载地址:http://kvanz.baihongyu.com/