Croppa 裁剪头像,上传到oss,再提交给后台接口(ajax请求,保存赋值给全局变量没有用的解决方案)
2019-07-23 17:34
513 查看
插件网址
https://zhanziyang.github.io/vue-croppa/#/demos
第一步:npm
npm install --save vue-croppa
第二步:main.js引入
import 'vue-croppa/dist/vue-croppa.css' import Vue from 'vue' import Croppa from 'vue-croppa' Vue.use(Croppa)
第三步:html页面代码
<croppa v-model="croppa" :show-remove-button="true" :width="160" :height="160" :prevent-white-space="true" initial-size="natural"></croppa> <Button style="width: 100px" type="primary" size="large" long :loading="sourloading" @click="upload">提交</Button> // 这个插件里面有许多属性 几个常用的: show-remove-button="true" 是否显示右上角的 × 叉叉 prevent-white-space="true" 禁止有白框的出现 //具体效果自己试一下 disabled=true 禁止选择 initial-size="natural" 初始尺寸
https://www.npmjs.com/package/vue-croppa // 具体属性值有哪些可以自己去看一下
第四步:js 部分
创建一个变量 data(){ return{ croppa: {}, fileimgid :'', } }
methods:{ //图片裁剪 upload(){ if (!this.croppa.hasImage()) { alert('暂无图片') return } this.croppa.generateBlob((blob) => { var fd = new FormData() // !!!!!!!重点说明,这里,必须要保存一个指向,要不然success 里面的this不是指向全局的,全局变量保存 也就没有用, //!!!!!!!!!!!!!!!!!!!!!!!!! var that = this fd.append('file', blob, 'filename.jpg') fd.append('other', 'blahblahblah') $.ajax({ url: this.uploadAction, // 这里是你上传到oss 或者其他服务器的地址,我直接把地址赋值给全局变量 data: fd, async:false, // 这里也必须异步请求!!! type: 'POST', processData: false, contentType: false, success: function (data) { if(data.errcode == 2000){ that.fileimgid = data.result // 调用第二个接口 that.Editall() } } }) }) }, Editall(){ console.log(this.fileimgid) // 下面是提交的请求 这里是第二个请求,可以自己写了,写太多反而更乱 }
ajax请求,保存赋值给全局变量没有用的解决方案
怕有的人不看代码,在这里再写一下
1、 async:false, // 异步
2、保存this的指向(写在请求之前)
var that = this
如有疑问或者本文有什么出错的地方,欢迎评论
相关文章推荐
- ajax同步提交数据,并把请求返回值赋值给全局变量
- Ajax请求中给全局变量赋值的解决方案
- [JS]JQuery中使用Ajax赋值给全局变量异常解决方案
- ajax请求获取的数据无法赋值给全局变量问题总结
- js通过ajax发送请求赋值全局变量
- ajax同步设置,解决ajax请求内对全局变量赋值(data的数据)
- Retrofit+RxJava+OkHttp封装类请求接口数据→原生登录,注册,个人信息页+设置用户头像(图片上传或拍照)+SharedPreferences保存信息+Fresco加载图片+Mvp分层
- ASP.NET 中后台代码中全局变量在提交多少后一直保存起来的3种方式
- JS,全局变量,ajax中赋值,在其他闭包里没有拿到值
- ajax不能给全局变量赋值,只能采用同步提交的方式?
- 使用SpringMvc跨服务器上传图片,Ajax异步刷新图片框显示图片功能请求不到后台,onChange事件没有激活的源码?
- Retrofit+RxJava+OkHttp封装类请求接口数据→原生登录,注册,个人信息页+设置用户头像(图片上传或拍照)+SharedPreferences保存信息+Fresco加载图片+Mvp分层
- ajax 请求后台数据(及使用FormData对象提交表单及上传图片)
- JQuery中使用Ajax赋值给全局变量异常解决方案
- JQuery中使用Ajax赋值给全局变量异常解决方案
- 关于ajax请求数据,将数据赋值给全局变量
- ExtJs中使用Ajax赋值给全局变量异常解决方案
- JQuery中使用Ajax赋值给全局变量异常解决方案
- 关于ajax请求数据,并将数据赋值给全局变量的一些解决方法
- Ajax 得到的值对全局变量赋值没有起作用解决办法和 Jquery append()进去的动态代码 点击的js没起作用