不想努力的程序员 2023-01-03 15:01 采纳率: 52.5%
浏览 64
已结题

vue使用get请求传参,后台接收不到参数

前端使用的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;

后端接收不到参数,是哪里配置有问题吗?求解决

  • 写回答

2条回答 默认 最新

  • 小飞LOVE霞 2023-01-03 15:13
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月11日
  • 已采纳回答 1月3日
  • 创建了问题 1月3日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效