jeecg踩坑-发布项目后点击某按钮时莫名其妙的弹出“Token失效,请重新登录”

这里写自定义目录标题

  • 问题描述
  • 问题源头寻找
  • 问题所在
  • 解决办法:

问题描述

用jeecg框架做的网站。做一处摄像头调用,需要浏览器调用摄像头拍照后上传到服务器。
在本地调试时没有问题,但发布到别的服务器,并在本地访问时出现点击“上传”时自动弹出“Token失效,请重新登录”——很莫名其妙的bug
所用jeecg版本是v2.1.4

问题源头寻找

首先在前后端项目中搜索“Token失效,请重新登录”的字眼,发现仅出现一次,在前端项目的src/utils/request.js里

switch (error.response.status) {
      case 403:
        notification.error({ message: '系统提示', description: '拒绝访问',duration: 4})
        break
      case 500:
        //notification.error({ message: '系统提示', description:'Token失效,请重新登录!',duration: 4})
        if(token && data.message=="Token失效,请重新登录"){
        ...

这意思大概是返回500错误的某种情况下才会提示这个
于是打开浏览器的调试-Network筛选XHR查看请求,发现进行了两次upload请求,第一次200但无返回,第二次报500错误
中间翻看源码,百思不得其解,想不通本地为什么就没问题,
仔细观察才发现:vue里引用的upload请求地址是

uploadAction:window._CONFIG['domianURL']+"/sys/common/upload",

(这里是因为页面上传部分大体参考的图片上传的src/components/jeecg/JImageUpload.vue改写的)
而window._CONFIG[‘domianURL’]是public/index.html里的全局配置,默认赫然是

window._CONFIG['domianURL'] = 'http://127.0.0.1:8080/jeecg-boot';

问题所在

所以我远程访问服务器时到这一步因为upload请求的地址是127.0.0.1开头而非服务器IP,想要调用本地127.0.0.1处的upload方法,自然会500错误,TOKEN也通不过了。

解决办法:

用nginx部署的将部署后html文件夹内的index.html文件末尾的相关项IP地址修改,如部署在192.168.1.113,则改为

window._CONFIG['domianURL'] = 'http://192.168.1.113/jeecg-boot';

之后就可以正常发起请求了
如此想来,本来jeecg自带的的上传图片方法部署之后也许也会有问题。

你可能感兴趣的:(jeecg,vue.js,java,web,html)