在线axios(在线测网速)

http://www.itjxue.com  2023-01-28 03:12  来源:未知  点击次数: 

JeeCGBoot低代码开发平台,强大的代码生成器前后端一起生成

今日推荐:JeeCGBoot低代码开发平台

推荐理由:

1、前后端实现分离架构,通过API调用,实现架构解耦

2、项目集成SpringBoot、SpringCloud的Spring全家桶

3、在线实现开发,表单开发设计、报表配置、在线图表设计、在线设计流程、流程自动化、插件能力等

4、系统集成了工作流,实现扩展任务接口。

5、解决java项目的70%的重复工作

6、最重要的是技术售后的完善,有完善的开发文档,常见问题,交流群

适用场景

1、内部办公系统OA

2、企业资源计划系统ERP

3、客户关系管理系统CRM

4、企业信息管理系统

5、电商SAAS系统

功能特色:

1、支持微服务SpringCloudAlibab全家桶

2、前后端高效代码生成器,单表,一对多模型,CRUD等功能一键生成

3、低代码图表功能,在线设计图表无需编码,实现曲线图,柱状图,数据报表等自定义排版布局

4、封装各种工具类,如定时任务,短信接口邮件发送,excel导入,文件上传下载等

5、支持查询过滤器,动态拼装SQL追加查询条件

6、实现数据权限,控制到行级,列表级,表单字段级,实现不同人看不同数据

7、支持SAAS服务模式,提供多租户的架构方案

8、数据库兼容主流Mysql、PostgreSql、Oracle、SQLServer、MariaDB等主流数据库,一套代码兼容主流

9、集成了Activiti工作流

10、支持单点登录CAS集成方案

11、接口统一采用restful接口方式,集成了Swagger-ui在线接口文档

技术架构:

后台环境:

Java8+Maven+Mysql+Redis

后台开发技术

springBoot2+SpringCloudAlibaba+MybatisPlus+Jimurport+ApacheShir

前端:

Vue2.6+Axios

微服务架构图:

后台操作图:

支持手机端

Nginx无法获取带下划线的请求头数据问题

今天在开发中有这样一个请求:前端需要在http请求中携带参数,后端获取参数进行解析并进行后续操作。

前后端分离

前端:Nuxt + axios

后端:Springboot + dubbo

在线下环境进行测试的时候一切都是可以的,但是部署到线上环境却发现无法获取请求头中的参数信息

① 从代码版本来看,线上和线下都是一致

② 运行环境一致

③ 除新功能外,项目其他部分运行正常

以一个数据查询的功能为切入点,进行接口调试然后发现:

能正常获取请求头中的参数!

① 线下是本地运行,连接测试库

② 线上是云服务器运行,连接正式库

③ 线上有使用到Nginx反向代理

首先线上接口是OK,调试也正正常通。那么很大可能是前后端联调出的问题。于是我又运行本地的前端项目联调线上接口发现也是不行的。

到这里的话,问题已经很清晰了:线上项目有经过Nginx进行反向代理,那大概率就是Nginx这个环节出现问题了。

① 从Nginx日志中发现如下:

到这里已经很明确了,就是Nginx不能识别请求头中的access_token

② 网上查询相关资料

Nginx中关于: underscores_in_headers on;

的配置是默认关闭的,于是不能识别到accessToken

在server模块中配置: underscores_in_headers on;

access_token 修改为 accessToken

另外记录下遇到的其他问题:

① Dubbo中不能序列化HttpServletRequest,需要再消费者的业务实现类中进行数据获取,然后传递给生产者。

没有什么技术含量,流水账罢了...

Elementui 在线获取表格数据

!DOCTYPE?html

html

head

????meta?charset="utf-8"

????meta?http-equiv="X-UA-Compatible"?content="IE=edge"

????title用户信息页/title

????link?rel="stylesheet"?href=""

????link?rel="stylesheet"?href=""

/head

body

div?id="app"

????el-table?ref="testTable"?:data="tableData"?style="width:45%"?border

????????el-table-column?fixed?prop="id"?label="ID"?width="80"/el-table-column

????????el-table-column?fixed?prop="username"?label="用户名称"?width="120"/el-table-column

????????el-table-column?prop="post"?label="角色"?width="120"/el-table-column

????????el-table-column?prop="department_name"?label="部门"?width="120"/el-table-column

????????el-table-column?prop="post_name"?label="岗位"?width="120"/el-table-column

????????el-table-column?prop="top"?label="直属上级"?width="120"/el-table-column

????????el-table-column?prop="other_department"?label="附属部门"?width="120"/el-table-column

????????el-table-column?prop="last_login_time"?label="最后登录时间"?width="180"{{$moment().format('YYYY-MM-DD?HH:mm:ss')}}

????????/el-table-column

????/el-table

????div

????????el-pagination

????????????????@size-change="handleSizeChange"

????????????????@current-change="handleCurrentChange"

????????????????:current-page="currentPage"

????????????????:page-sizes="[10,?20,?30,?40]"

????????????????:page-size="10"

????????????????layout="total,?sizes,?prev,?pager,?next,?jumper"

????????????????:total="Number(totalCount)"

????????/el-pagination

????/div

/div

/body

!--?vue.js放在index.js前面?--

script?src="../js/vue.min.js"/script

script?src=""/script

script?src="../js/axios.min.js"/script

script?src="../js/moment.main.js"/script

script?type="text/javascript"

????Vue.prototype.$moment?=?moment

????Vue.prototype.$http?=?axios

????var?vue?=?new?Vue({

????????el:?'#app',

????????data:?{

????????????//表格当前页数据

????????????tableData:?[],

????????????//默认每页数据量

????????????pagesize:?10,

????????????//当前页码

????????????currentPage:?1,

????????????//默认数据总数

????????????totalCount:?0,

????????????//url参数

????????????urlParams:?{

????????????????page:?1,

????????????????limit:?10,

????????????},

????????},

????????computed:?{

????????????getQueryString:?function?()?{

????????????????let?QueryString?=?'';

????????????????for?(var?i?in?this.urlParams)?{

????????????????????QueryString?+=?i?+?"="?+?this.urlParams[i]?+?"";

????????????????????console.log(i);

????????????????????console.log(i,this.urlParams[i]);

????????????????}

????????????????console.log(QueryString);

????????????????return?QueryString.slice(0,?-1);

????????????},

????????},

????????methods:?{

????????????//从服务器读取数据

????????????loadData:?function?()?{

????????????????let?_this?=?this

????????????????this.$http.get('?'?+?this.getQueryString).then(function?(res)?{

????????????????????console.log(res.data);

????????????????????if?(res.data.code?==?0)?{

????????????????????????_this.tableData?=?res.data.data;

????????????????????????_this.totalCount?=?res.data.count;

????????????????????}?else?{

????????????????????????return;

????????????????????}

????????????????})

????????????????????.catch(err?=?{

????????????????????????console.log(err);

????????????????????});

????????????},

????????????//每页显示数据量变更

????????????handleSizeChange:?function?(val)?{

????????????????this.urlParams.limit?=?val;

????????????????this.loadData();

????????????},

????????????//页码变更

????????????handleCurrentChange:?function?(val)?{

????????????????this.urlParams.page?=?val;

????????????????this.loadData();

????????????},

????????},

????????created()?{

????????????this.loadData();

????????},

????});

/script

/html

(责任编辑:IT教学网)

更多

推荐XML/XSLT文章