首页 > 其他分享 >Vue3 发送get 请求 携带数据

Vue3 发送get 请求 携带数据

时间:2023-11-07 23:03:40浏览次数:32  
标签:function return service get error request 发送 Vue3 data

export function Team(data = {}) {
  return service.request({
    method: "get",
    url: "https://example.com/api/endpoint", // 替换成实际的API端点
    params: {
      param1: data.param1, // 根据传入的参数动态构建
      param2: data.param2
    }
  })
    .then(response => {
      // 请求成功,处理响应数据
      return response.data;
    })
    .catch(error => {
      // 请求失败,处理错误
      console.error("请求失败:", error);
      throw error; // 可以选择抛出错误,以便在调用方处理
    });
}

/api/account.js

import service from "@/utils/request";    // 引入拦截器
export function Register(data = {}) {
    return service.request({
        method: "post",
        url: "/users/register/",
        data
    });
}

export function Login(data = {}) {
    return service.request({
        method: "post",
        url: "/users/login/",
        data
    });
}

export function Logout(data = {}) {
    return service.request({
        method: 'post',
        url: "/users/logout/",
        data
    })
}

// export function Team(data = {}) {
//     return service.request({
//         method: "get",
//         url: "/users/team/",
//         params: {
//             'team': data.team, // 根据您的需求传递参数
//         }
//         params: data
//     })
// }

export function Team(data = {}) {
    return service.request({
        method: "get",
        url: "/users/team/",
        params: data
    })
}

拦截器  /utils/request.js

import axios from "axios";
// ElementUI 单独引入
import {ElMessage} from "element-plus";
// vue-router
import router from "@/router";
// cookies
import {getToken, getUsername, removeToken, removeUsername} from '@/utils/cookies'

// 创建实例
const service = axios.create({
    // baseURL: "/devApi",     // 请求地址
    baseURL: process.env.VUE_APP_API,    // 请求地址
    timeout: 5000    // 超时
});
// console.log(process.env.VUE_APP_API)
// 拦截器
// 添加请求拦截器
service.interceptors.request.use(
    function (config) {
        // console.log("config:",config)
        // 在发送请求之前做些什么
        if (getToken()) {
            config.headers['Token'] = getToken()
        }
        if (getUsername()) {
            config.headers['Username'] = getUsername()
        }
        // console.log("config:", config);
        // config.params = {'team':'test'}
        return config;
    },
    function (error) {
        // 对请求错误做些什么
        console.log("service,error:", error);
        return Promise.reject(error);
    });
// 添加响应拦截器
service.interceptors.response.use(
    function (response) {
        // 对响应数据做些什么
        // console.log("response:", response.data);
        const data = response.data;
        // console.log("data:", data);
        if (data.resCode === 0) {
            return Promise.resolve(data);
        } else {
            ElMessage({
                message: data.message,
                type: "error"
            });
            return Promise.reject(data.error);
        }
    },
    function (error) {
        // 对响应错误做些什么
        // console.log("error:", error.request);   // HMLHttpRequest...

        const errorData = JSON.parse(error.request.response);
        // console.log("errorData:", errorData);   // {code:....}
        if (errorData.message) { // 判断是否有 message 属性
            ElMessage({
                message: errorData.message,
                type: "error"
            });
        }
        // token 失效自动退出
        if (errorData.resCode === 1010) {
            router.replace({
                name: "Login"
            })
            removeToken();
            removeUsername();
        }
        // 对响应错误做些什么
        return Promise.reject(error);
    }
);

// 暴露service
export default service;

 

标签:function,return,service,get,error,request,发送,Vue3,data
From: https://www.cnblogs.com/vPYer/p/17816285.html

相关文章

  • 【Cpp 语言基础】C++中的 getline() 函数
    一、string类的getline函数(全局函数)getline(cin,str)函数是处理string类的函数。第二个参数为string类型的变量。读入时第二个参数为string类型,而不是char*,要注意区别     getline()函数的定义如下所示    1.istream&getline(istream&is,string&str,ch......
  • uniApp:使用vue3+Vite4+pinia+sass技术栈构建(03)-封装对象类
    1.在src文件夹创建models文件夹import{user}from"@/service/api"//用户信息返回的数据类型interfaceuserInfoType{username:string,phone:string}//返回类型interfaceResultType<T>{errno:number,errmsg:string,datas:T}classuser......
  • 遇到的问题之“使用get请求时,请求参数中存在#导致后端request获取不到值”
    一.问题使用get请求时,请求参数中存在#导致后端request获取不到值发出参数带#的请求后端接收不到SKU的值,连后面platformId的值都没有了   二.原因1、有些符号[参数包含有特殊字符(%、#、&)]在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码......
  • vue3 axios 获得基地址
    1.位置 //axios基础的封装importaxiosfrom'axios'import'element-plus/es/components/message/style/css'import{ElMessage}from'element-plus'consthttpInstance=axios.create({baseURL:'http://laravel.cn',//基......
  • unittest发送邮件功能
    #coding=utf-8#1.先设置编码,utf-8可支持中英文,如上,一般放在第一行#2.导入unittest模块importHTMLTestRunnerCNimportunittestimportosfromemail.mime.textimportMIMETextfromemail.mime.multipartimportMIMEMultipartfromemail.headerimportHeaderimportsmtplib#......
  • Django实战项目-学习任务系统-发送短信通知
    接着上期代码内容,继续完善优化系统功能。本次增加发送短信通知功能,学习任务系统发布的任务,为了更加及时通知到学生用户,再原有发送邮件通知基础上,再加上手机短信通知功能。第一步:开通短信通知服务目前短信通知都是要收费的,本人还没发现免费的短信通知服务,如有网友知道免费资源请......
  • get请求401
    运行结果401 把params换为headers运行正常 ......
  • vue3 devtool
    打开控制台,输入下面代码:varvue=app.__vue_app__consthook=window['__VUE_DEVTOOLS_GLOBAL_HOOK__']hook.emit('app:init',vue,vue.version,{Fragment:'Fragment',Text:'Text',Comment:'Comment',......
  • get请求和post请求的区别
    get请求不会修改服务器资源,常用于获取资源;post会修改服务器资源浏览器会对get请求做缓存,post很少做缓存get请求会在地址栏显示参数,post不显示get请求对url有限制,post没有(url在请求体内,所以没限制)get不可以发送文件,图片,post可以get只发送一次请求,post发送两次,第一次询问浏览器......
  • vscode快捷输入vue2,vue3,模板
    { //Placeyoursnippetsforvuehere.Eachsnippetisdefinedunderasnippetnameandhasaprefix,bodyand //description.Theprefixiswhatisusedtotriggerthesnippetandthebodywillbeexpandedandinserted.Possiblevariablesare: //$1,......