相关文章推荐
强悍的火柴  ·  '/node_modules/.vite/d ...·  3 天前    · 
完美的鸡蛋面  ·  vue3 npm run ...·  昨天    · 
大鼻子的山羊  ·  fastapi token 验证-掘金·  10 月前    · 
行走的烤红薯  ·  WPF ...·  1 年前    · 
高大的拐杖  ·  Qt Creator ...·  1 年前    · 
@PostMapping("pageCondition/{current}/{limit}") public Result pageCondition(@PathVariable long current, @PathVariable long limit, @RequestBody(required = false) ProjectQuery projectQuery){ Page page = new Page<>(current, limit); //构件条件 QueryWrapper queryWrapper = new QueryWrapper<>(); String name = projectQuery.getName(); Integer level = projectQuery.getLevel(); String begin = projectQuery.getBegin(); String end = projectQuery.getEnd(); if(!StringUtils.isEmpty(name)){ queryWrapper.like("name", name); if(!StringUtils.isEmpty(level)){ queryWrapper.eq("level", level); if(!StringUtils.isEmpty(begin)){ queryWrapper.ge("create_tome", begin); if(!StringUtils.isEmpty(end)){ queryWrapper.eq("update_time", end); projectService.page(page, queryWrapper); long total = page.getTotal(); List record = page.getRecords(); Map data = new HashMap<>(); data.put("total", total); data.put("items", record); return Result.ok().data(data);

ProjectQuery对象信息如下,构造一个查询条件:

@Data
public class ProjectQuery {
    @ApiModelProperty(value = "分区名称,模糊查询")
    private String name;
    @ApiModelProperty(value = "分区级别")
    private Integer level;
    @ApiModelProperty(value = "查询开始时间", example = "2019-10-11 10:10:10")
    private String begin;  //所使用的的String类型,前端传过来的数据无需进行格式转换
    @ApiModelProperty(value = "查询结束时间", example = "2019-10-11 10:10:10")
    private String end;  //所使用的的String类型,前端传过来的数据无需进行格式转换
onSubmit(page = 1, limit = 10) { //条件查询表单的查询按钮事件
                console.log('执行条件查询......');
                const _this = this;
                this.$axios({
                    // 默认请求方式为get
                    method: 'post',
                    url: 'http://localhost:8001/projectservice/pageCondition/'+page+"/"+limit,
                    // 传递参数
                    data: {
                        name: _this.projectQuery.name,
                        level: _this.projectQuery.level,
                        begin:  _this.projectQuery.begin,
                        end:  _this.projectQuery.end
                    responseType: 'json'
                }).then(response => {
                    // 请求成功
                    _this.result = response.data.data.items
                    _this.total = response.data.data.total
                    console.log(response)
                }).catch(error => {
                    // 请求失败,
                    console.log(error)

其中后端的@RequestBody所需的参数应该是post请求的data,而不是params,data里面对应的参数刚好是后端接口所需的查询条件,除了直接在data里放key-value外(由axios自动转为json字符串了),也可以自己构造对象,通过stringify()转换为json字符串:

let obj = qs.stringify({
		key: value

然后放在axios参数data里,其中axios详细参数如下: 

axios({
    url: '连接地址 path参数直接放里面',
    method: 'post 默认是 get',
    params: '必须是一个无格式对象 query参数',
    data: '是作为请求主体被发送的数据 body参数',
    timeout: 1000,
    headers: 'object 发送的自定义请求头'

查询name为“计算机网络”的数据:

send3:function(){ // 发送post请求要进行处理,因为发送方式和正常的表单提交不一样 // axios.post(url,data,[options]); // axios默认发送数据时,数据格式是Request Payload,并非我们常用的Form Data格式, // 所以参数必须要以键值对形式传递,不能以json形式传参 // 传参方式: // 1.自己拼接为键值对 PPOS表单请求提交时,使用的Content-Type是application/x-www-form-urlencoded,而使用原生AJAX的POST请求如果不指定请求头RequestHeader,默认使用的Content-Type是text/plain;Vueaxios传参方式是requestpayload,参数格式是json,而通过payload形式的数据php $_post无法接受前端提交的数据,要想后端接受post提交的数据,就要进行参数设置,提交的数据形式变为:Form Data。 dataType : "json", data : JSON.stringify(ids), contentType:"application/json;charset=utf-8", succes <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Do. 刚开始使用Vue,里面的坑是一个接一个,今天就遇到一个axios POST传参的问题。 因为后端要求是按表单提交的形式给他数据, 我需要在请求中传递参数,然后按官方文档的格式开始操作,代码如下: axios.post('/user', { firstName: 'Fred', lastName: 'Flintstone' .then(function (response) { console.log(response); application/x-www-form-urlencoded 以上三种类型是进行数据传输的数据类型,我们知道在js代码中的对象都不是以上的三种形式,但是要进行数据传输必须将js对象转换为以上的三种格式之一,可是我刚接触axios发送请求的时候,有时候却可以直接传递一个js对象,就很疑惑,今天终于弄懂了,其实axios在底层帮我们做了转换, 1、application/json包引用compile("org.springframework.cloud:spring-cloud-starter-openfeign")feign端调用@FeignClient(name = "dcv-service") public interface DCVService { @PostMapping(value = "/dcvApi/dcvVa... Axios是什么?Axios 是一个基于 promise 的 HTTP 库,简单的讲就是可以发送get、post请求。说到get、post,大家应该第一时间想到的就是Jquery吧,毕竟前几年Jquery比较火的时候,大家都在用他。但是由于Vue、React等框架的出现,Jquery也不是那么吃香了。也正是Vue、React等框架的出现,促使了Axios轻量级库的出现,因为Vue等,不需要操作Do...