@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;Vue的axios传参方式是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...