const data = res.data // 自定义参数 const custom = res.config?.custom if(data.code === 40001) { vm.doLogout(); vm.whenUserNeedToLogin(); return Promise.reject(res) } else if(res.data && res.data.code == 402) { vm.checkUserIsRealNameVerify(); return Promise.reject(res); } else if(res.data && res.data.code == 506) { uni.reLaunch({ url: '/pages/index/maintain' }); return false; }
时间: 2023-06-20 11:07:34 浏览: 109
这段代码是一个异步请求返回后的处理逻辑。首先获取返回的数据,然后判断返回数据中的code是否为40001、402或506。如果code为40001,则调用vm对象中的doLogout()和whenUserNeedToLogin()方法,然后返回一个被拒绝的Promise对象。如果code为402,则调用vm对象中的checkUserIsRealNameVerify()方法,然后返回一个被拒绝的Promise对象。如果code为506,则使用uni对象中的reLaunch()方法跳转到'/pages/index/maintain'页面,并返回false。如果code不为40001、402或506,则不做任何处理。同时,这段代码中还使用了可选链运算符(?.)来判断res.config对象中是否有custom属性,避免因为config对象不存在而导致的类型错误。
相关问题
const custom = res.config?.custom if(data.code === 40001) { // vm.$u.toast(vm.$t('account.validaFail')); // setTimeout(() => { // 此为uView的方法,详见路由相关文档 // vm.$u.route('/pages/account/login') // }, 1500) // uni.reLaunch({ // url: '/pages/user/login' // }); // vm.$u.route('/pages/user/login') // return false; vm.doLogout(); vm.whenUserNeedToLogin(); return Promise.reject(res) }
这段代码看起来像是一个 AJAX 请求的错误处理逻辑,首先从响应对象 `res` 中获取 `config` 属性并进一步获取 `custom` 属性,然后判断响应数据的状态码是否为 40001,如果是,就执行一些操作(注释部分),最后返回一个被拒绝的 Promise 对象并传入原始的 `res` 对象。如果状态码不是 40001,就继续向下处理。其中涉及到了一些 Vue.js 和 uni-app 的相关方法,比如 `vm.$u.toast` 和 `uni.reLaunch`,具体的实现还需要结合上下文来看。
vue wangeditor自定义上传图片
### 集成 WangEditor 并实现自定义图片上传
#### 安装依赖包
为了在 Vue 项目中使用 WangEditor,首先需要安装相应的 npm 包。对于 Vue 2 和 Vue 3 的不同版本,可以分别执行如下命令来安装:
```bash
npm install wangeditor --save
```
#### 初始化编辑器实例
创建一个新的组件用于承载富文本编辑器,在 `mounted` 生命周期钩子函数内初始化 editor 实例。
```javascript
import E from 'wangeditor'
export default {
name: "MyEditor",
mounted() {
const editor = new E(this.$refs.editorElem);
// 设置编辑区域高度
editor.config.height = 300;
// 开启调试模式
editor.config.debug = true;
// 更多配置...
editor.create();
}
}
```
#### 自定义图片上传服务器端点
通过设置 `uploadImgServer` 属性来自定义图片上传的目标 URL 地址[^1]。
```javascript
const editor = new E(this.$refs.editorElem);
// ...其他配置...
editor.config.uploadImgServer = '/your/custom/upload/api';
// 创建编辑器
editor.create();
```
#### 处理跨域请求与响应头
如果前端应用和后端 API 不在同一域名下,则需确保服务器返回合适的 CORS 响应头以便允许跨源资源共享。通常情况下,这涉及到调整 Web 服务器或框架中间件的配置以添加必要的 HTTP Access-Control-Allow-* 头部字段。
#### 添加额外参数到上传请求
有时可能还需要向上传请求附加一些额外的数据(比如 token 或者用户 ID),这时可以通过修改 `uploadFileName` 及 `withCredentials` 参数以及利用 `beforeUploadImg` 方法来进行处理。
```javascript
editor.config.withCredentials = true; // 如果需要携带 cookie 则开启此选项
editor.config.customUploadImg = function (resultFiles, insertImgFn) {
let formData = new FormData();
resultFiles.forEach(file => {
formData.append('file', file);
});
axios({
url: "/your/custom/upload/api",
method: 'post',
data: formData,
headers: { 'Content-Type': 'multipart/form-data' },
}).then(res => {
if (res.data.code === 200){
res.data.urls.map(url => insertImgFn(url));
}else{
console.error("Failed to upload images");
}
});
};
```
阅读全文
相关推荐












