前端使用的vue封装的axios,后台是springboot,前后端分离项目,在使用get请求传参时后端接收不到参数,
后端代码如下
/**
* 查询上级菜单列表
* @param menuType 菜单类型
* @return 返回list
*/
@GetMapping("getParentMenuList")
public ResultUtils<List<Menu>> getParentMenuList(@RequestParam Integer menuType){
return menuService.getParentMenu(menuType);
}
前端代码如下:
api.js
export function getParentMenuList(params:any) {
return http.get(`${resquest}/menuManager/getParentMenuList`, params);
}
http.js代码如下
/**** http.js ****/
// 导入封装好的axios实例
import request from "./request";
const http = {
/**
* methods: 请求
* @param url 请求地址
* @param params 请求参数
*/
get(url:any, params:any) {
const config = {
method: "get",
url: url,
params:''
};
console.log(params)
if (params){
config.params = params;
console.log( config.params )
}
return request(config);
},
post(url:any, params:any) {
const config = {
method: "post",
url: url,
data:''
};
if (params) config.data = params;
return request(config);
},
};
//导出
export default http;
request.js代码如下
// 导入axios
import axios from "axios";
import router from "@/router/index";
import {useStore} from "@/store";
// 使用element-ui Message做消息提醒
import {
ElMessage
} from "element-plus";
//1. 创建新的axios实例,
const service = axios.create({
// 公共接口--这里注意后面会讲
baseURL: "/api",
// 超时时间 单位是ms,这里设置了3s的超时时间
timeout: 3 * 1000,
});
// 2.请求拦截器
service.interceptors.request.use(
(config) => {
//发请求前做的一些处理,数据转化,配置请求头,设置token,设置loading等,根据需求去添加
config.data = JSON.stringify(config.data); //数据转化,也可以使用qs转换
const store = useStore()
config.headers = {
'Content-Type': 'application/json;charset=UTF-8', //配置请求头
};
if (config.url=="/admin/adminTalent/resumeDownload"||config.url=="/admin/adminUpload/download"){
config.responseType='arraybuffer'
}
console.log(config.url=='/admin/adminTemplate/uploadFile')
if(config.url=='/admin/adminUpload/uploadFile'||config.url=='/admin/adminUpload/uploadFiles'
||config.url=='/admin/adminTemplate/uploadFile'||config.url =='/admin/adminEmployee/uploadFile'){
config.headers = {
'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryn8D9asOnAnEU4Js0', //配置请求头
};
}
//注意使用token的时候需要引入cookie方法或者用本地localStorage等方法,推荐js-cookie
const token = store.token //这里取token之前,你肯定需要先拿到token,存一下
const tokenHead = sessionStorage.getItem("tokenHead");
const tokenHeader = tokenHead+' '+token
console.log(tokenHeader)
if(config.url!='/admin/user/getVerificationCode'&&config.url!='/admin/user/userLogin'){
if (token) {
config.params = {
token: token
}; //如果要求携带在参数中
config.headers.token = token; //如果要求携带在请求头中
config.headers.Authorization = tokenHeader;
}
}
return config;
},
(error) => {
Promise.reject(error);
});
// 3.响应拦截器
service.interceptors.response.use(
(response) => {
//接收到响应数据并成功后的一些共有的处理,关闭loading等
console.log(response)
console.log(3232)
if (response.data.code!=null){
if (response.data.code != "200"&&response.data.code != "206") {
if(response.data.code==401){
ElMessage.error("长时间未操作,请重新登录!")
router.push('/')
return response;
}
console.log(response.data)
ElMessage.error(response.data.message)
if(response.data.msg==='您未登录,请去登录'){
router.push('login')
}
if(response.data.code == "403"){
ElMessage.error("权限不足,请联系管理员!")
router.push('/homeIndex')
}
}
}
return response;
},
(error) => {
console.log(error)
/***** 接收到异常响应的处理开始 *****/
if (error && error.response) {
console.log(error)
// 1.公共错误处理
// 2.根据响应码具体处理
switch (error.response.status) {
case 400:
error.message = "错误请求";
break;
case 401:
error.message = "未授权,请重新登录";
break;
case 403:
error.message = "拒绝访问";
break;
case 404:
error.message = "请求错误,未找到该资源";
//window.location.href = "/NotFound";
break;
case 405:
error.message = "请求方法未允许";
break;
case 408:
error.message = "请求超时";
break;
case 500:
error.message = "服务器端出错";
break;
case 501:
error.message = "网络未实现";
break;
case 502:
error.message = "网络错误";
break;
case 503:
error.message = "服务不可用";
break;
case 504:
error.message = "网络超时";
break;
case 505:
error.message = "http版本不支持该请求";
break;
default:
error.message = `连接错误${error.response.status}`;
}
} else {
// 超时处理
if (JSON.stringify(error).includes("timeout")) {
ElMessage.error("服务器响应超时,请刷新当前页");
}
error.message = "连接服务器失败";
}
ElMessage.error(error.message);
/***** 处理结束 *****/
//如果不需要错误处理,以上的处理过程都可省略
return Promise.resolve(error.response);
});
//4.导入文件
export default service;
后端接收不到参数,是哪里配置有问题吗?求解决