您的位置:首页 > 游戏 > 游戏 > 网页设计个人简历模板_东莞防控疫情最新通告_微信推广方法_如何开发一个网站

网页设计个人简历模板_东莞防控疫情最新通告_微信推广方法_如何开发一个网站

2024/10/11 12:00:49 来源:https://blog.csdn.net/weixin_45146962/article/details/142549194  浏览:    关键词:网页设计个人简历模板_东莞防控疫情最新通告_微信推广方法_如何开发一个网站
网页设计个人简历模板_东莞防控疫情最新通告_微信推广方法_如何开发一个网站

文章目录

  • 后端接收参数
  • 前端发送请求
    • 引入axios实现发送请求
    • 引入qs实现传参格式化
    • axios基本写法
  • 前后端传参
    • 将数组转化为单个Json字符串传输
      • 前端发送
      • 后端接收
    • 将数组转换为json对象进行传输
      • 前端发送请求
      • 后端接受请求
    • 直接传输数组
      • 前端发送请求
      • 后端接收请求
  • 前后端发送请求格式需要对应起来
  • 总结
    • 发送Get请求,后端可以直接使用@RequestParam接收,前后端名称要对应
    • 发送Post请求,后端最好使用@RequestBody接收参数
    • 传输数组时,前后端传输的格式要对应

后端接收参数

参考文章:@PathVariable@RequestParam@RequestBody接收参数区别

前端发送请求

引入axios实现发送请求

npm install axios

引入qs实现传参格式化

因为axios自带qs,引入了axios后可直接引入

import Qs from 'qs'

qs是否启用,需要根据后端的接收参数形式进行判断

axios基本写法

axios.js

import axios from "axios";
import { Message } from "element-ui";
import { getStore, setStore } from "./storage";let base = '/xx';
axios.defaults.timeout = 15000;//添加请求拦截器
axios.interceptors.request.use(function(config) {// 在发送请求之前做些什么return config;
}, function(error) {Message.error('请求出错');//对请求错误做些什么return Promise.reject(error);
})//添加响应拦截器
axios.interceptors.response.use(function(response) {// const data = response.data;//对响应数据做点什么return response;
}, function(error) {//对响应错误做点什么return Promise.reject(error)
})/*** 发送登录get请求*/
export const getRequest = (url,params) => {let accessToken = getStore('accessToken');return axios({method: 'get',url:`${base}${url}`,params:params,headers: {'Authorization': accessToken,}});
};/*** 发送未登录get请求*/
export const getNoAuthRequest = (url,params) => {return axios({method: 'get',url: `${base}${url}`,params: params});
};/*** 发送已登录 表单格式 post请求*/
export const postRequest = (url,params) => {let accessToken = getStore('accessToken');return axios({method: 'post',url: `${base}${url}`,data: params,transformRequest: [function(data){let ret = '';for (let it in data){ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&';}ret = ret.substring(0,ret.length - 1);return ret;}],headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8','Authorization': accessToken}});
};/*** 发送已登录 body post请求*/
export const postBodyRequest = (url,params) => {let accessToken = getStore('accessToken');return axios({method: 'post',url: `${base}${url}`,data: params,headers: {'Authorization': accessToken,'Content-Type': 'application/json;charset=UTF-8'}});
};/*** 发送未登录 form post请求*/
export const postNoAuthRequest = (url,params) => {return axios({method: 'post',url: `${base}${url}`,data: params,transformRequest: [function(data){let ret = '';for (let it in data){ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&';}ret = ret.substring(0,ret.length - 1);return ret;}],headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',}});
};/*** 发送未登录 body post请求*/
export const postNoAuthBodyRequest = (url,params) => {return axios({method: 'post',url: `${base}${url}`,data: params,headers: {'Content-Type': 'application/json;charset=UTF-8'}});
};

前后端传参

将数组转化为单个Json字符串传输

前端发送

let data = [1,2,3]
sendPostRequest(JSON.stringfy(data)).then(res => {if(res.data.code == 200){console.log('请求成功')}else{console.log('请求失败')}
})

后端接收

@PostMapping("/receive")
public Result receiveParams(@RequstBody String ids){System.out.println(ids);return Result.ok();
}

将数组转换为json对象进行传输

前端发送请求

const ids = [1,2,3]
const data = qs.stringify({
"ids": JSON.stringify(ids)
})
sendPostRequest(JSON.stringfy(data)).then(res => {if(res.data.code == 200){console.log('请求成功')}else{console.log('请求失败')}
})

后端接受请求

@PostMapping("/receive")
public Result receiveParams(@RequstBody Map<String,Object> idsMap){System.out.println(idsMap);return Result.ok();
}

直接传输数组

前端发送请求

const ids = [1,2,3]
sendPostRequest(JSON.stringfy(data)).then(res => {if(res.data.code == 200){console.log('请求成功')}else{console.log('请求失败')}
})

后端接收请求

@PostMapping("/receive")
public Result receiveParams(@RequstBody List<Integer> ids){System.out.println(ids);return Result.ok();
}

前后端发送请求格式需要对应起来

  • get请求:最好使用@GetMapping进行接收
  • post请求:最好使用@PostMapping进行接收
  • @RequestMapping接收post请求时容易出现参数对应不上的情况

总结

发送Get请求,后端可以直接使用@RequestParam接收,前后端名称要对应

发送Post请求,后端最好使用@RequestBody接收参数

传输数组时,前后端传输的格式要对应

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com