zoukankan      html  css  js  c++  java
  • ssm+shiro权限框架+eleme前端框架(上传图片的坑)

    在之前做一个4s店维修管理系统时,登录权限用到了shiro框架,

    在前后端分离的情况下,登录成功后,后台会向前台传个token回来,

    前端的session会记录登录用户的所有信息,

    每当前端向后台发送axios请求时都会携带个token传向后台,

    //发送请求之前拦截下来,在请求头里面 添加上 X-Token:sfasdfasdf111111
    axios.interceptors.request.use(config => {
        if (sessionStorage.getItem('token')) {
            // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改
            config.headers['X-Token'] = sessionStorage.getItem('token')
            // config.headers['IP'] = sessionStorage.
        }
        return config
    }, error => {
        // Do something with request error
        Promise.reject(error)
    })

    通过这个token来判断用户是否存在。

    然而eleme前端框架的上传图片是直接写上传的地址。

    <el-form-item label="用户头像">
                        <el-upload
                                class="upload-demo"
                                action="http://localhost/file/upload"
                               
                                :on-preview="handlePreview"
                                :on-remove="handleRemove"
                                :on-success="handleAvatarSuccess"
                                :file-list="fileList"
                                list-type="picture">
                            <el-button size="small" type="primary">点击上传</el-button>
                            <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
                        </el-upload>
                    </el-form-item>

    token就没了。一上传图片就会报错

    通过 eleme文档发现了属性::headers

    修改后:

    <el-form-item label="用户头像">
                        <el-upload
                                class="upload-demo"
                                action="http://localhost/file/upload"
                                :headers="myHeaders"
                                :on-preview="handlePreview"
                                :on-remove="handleRemove"
                                :on-success="handleAvatarSuccess"
                                :file-list="fileList"
                                list-type="picture">
                            <el-button size="small" type="primary">点击上传</el-button>
                            <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
                        </el-upload>
                    </el-form-item>
    <script>
    return {
                myHeaders: {
                    'X-Token':sessionStorage.getItem('token')
                },
        ......其他js代码
        }

    就ok了

  • 相关阅读:
    JavaEye推荐:软件开发的葵花宝典 zt
    杨建:网站加速系统架构篇
    杨建:网站加速Cache为王篇
    整理:不用ACE你不知道ACE有多烂,给饱受ACE折磨的弟兄们散分了。
    jQuery对select操作 dodo
    easyui事件和方法的调用 dodo
    .Net 下利用ICSharpCode.SharpZipLib.dll实现文件压缩、解压缩 dodo
    使用Jquery EasyUi常见问题解决方案 dodo
    如何切分用户故事 dodo
    什么是产品Backlog,什么是Sprint Backlog? dodo
  • 原文地址:https://www.cnblogs.com/bigbigxiao/p/12069871.html
Copyright © 2011-2022 走看看