国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue2,3,小程序,uniapp的API請(qǐng)求封裝統(tǒng)一管理請(qǐng)求接口

這篇具有很好參考價(jià)值的文章主要介紹了vue2,3,小程序,uniapp的API請(qǐng)求封裝統(tǒng)一管理請(qǐng)求接口。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

?微信小程序

request.js

api.js頁(yè)面?

頁(yè)面使用?

?uniapp

request.js封裝公共請(qǐng)求頭

api.js里面存放api方法

在頁(yè)面引入方法

vue2、3

request.js封裝公共請(qǐng)求頭

api.js文件

頁(yè)面引入


?

uniapp vue3 請(qǐng)求封裝,javascript,前端,java

?微信小程序

request.js

// 引入env中的url
const baseUrl = "http://www.com"; // 測(cè)試地址
module.exports = {
  /**
   * url:請(qǐng)求的接口地址
   * method:請(qǐng)求方式 GET,POST....
   *  data:要傳遞的參數(shù)
   */
  request: (obj) => {
    // console.log('這是我封裝的ajax請(qǐng)求', baseUrl+obj.url);
    //這里使用ES6的寫(xiě)法拼接的字符串
    let _url = `${baseUrl}${obj.url}`;
    // console.log("請(qǐng)求信息",obj);
    return new Promise((resolve, reject) => {
      wx.showLoading({
        title: "正在加載",
      });
      wx.request({
        url: _url,
        data: obj.data,
        method: obj.method,
        header: {
          "content-type": "application/x-www-form-urlencoded",
          token: wx.getStorageSync("token"), //獲取保存的token 項(xiàng)目請(qǐng)求接口需要token不需要就不寫(xiě)
        },
        success: (res) => {
          // console.log('從接口獲取到的數(shù)據(jù)', res);
          resolve(res.data);
          wx.hideLoading();
          // wx.showToast({
          //   icon: "none",
          //   title: res.data.msg,
          // });
        },
        fail() {
          wx.hideLoading();
          reject("接口請(qǐng)求錯(cuò)誤,請(qǐng)檢查");
        },
      });
    });
  },
};

api.js頁(yè)面?

//引入封裝的reuest請(qǐng)求
const {
  request
} = require("./request.js");
//基于業(yè)務(wù)封裝的接口
module.exports = {
  // 獲取openid
  get_openidApi(data) {
    return request({
      url: "/api/wechat_notice/get_openid",
      method: "GET",
      method: "POST",
      data,
    });
  },
  // 登錄操作
  loginApi(data) {
    return request({
      url: "/api/index/login",
      method: "POST",
      data,
    });
  },
  // 幾天時(shí)間篩選
  time_arrayApi() {
    return request({
      url: "/api/index/time_array",
      method: "GET",
    });
  },
};

頁(yè)面使用?

引入

注意:微信小程序里面默認(rèn)不能使用絕對(duì)路徑,要使用../../../這樣引入,層級(jí)過(guò)多不方便,建議配置絕對(duì)路徑

微信小程序設(shè)置絕對(duì)路徑方法

const {
  loginApi,
  get_openidApi
} = require('@/utils/api.js')

請(qǐng)求?

  login() {
    // 在登錄事件里面請(qǐng)求這個(gè)接口
    if (this.data.account && this.data.password) {
      loginApi({
        account: this.data.account,
        password: this.data.password
      }).then((res) => {
        console.log(res);
        if (res.code == 1) {
          wx.setStorageSync('token', res.data.userinfo.token)
          wx.setStorageSync('account', this.data.account)
          wx.setStorageSync('password', this.data.password)
          // 登錄成功 跳轉(zhuǎn)到首頁(yè)
          wx.switchTab({
            url: '/pages/index/index',
          })
        } else {
          Toast(res.msg);
        }
      })
    } else {
      Toast('請(qǐng)輸入賬號(hào)密碼!');
    }
  },

?uniapp

request.js封裝公共請(qǐng)求頭

/* 
		@parms url 接口地址
		@parms method 請(qǐng)求方式
		@parms data 參數(shù)
 */
const BASE_URL = "http://192.168.1.2:9999" //公共請(qǐng)求頭地址
const imgApi='http://kinggo.icu:7777/upload'// 上傳接口
const request = (url, method, data) => {
	let token = uni.getStorageSync('token') //token
	// console.log("token:", token);
	return new Promise((resolve, reject) => {
		uni.request({
			url: BASE_URL + url, // 開(kāi)發(fā)者服務(wù)器接口地址
			method: method,//請(qǐng)求方式
			timeout: 60000, //請(qǐng)求超時(shí)時(shí)間
			data: data, //請(qǐng)求的參數(shù)
			header: { //設(shè)置請(qǐng)求的 header
			    'Content-Type': 'application/json',
				'token': token, //自定義請(qǐng)求頭信息token
			},
			success(res) { //對(duì)請(qǐng)求請(qǐng)求到的信息進(jìn)行處理
				console.log(res.data)
				if (res.data.code == 200 || res.data.code == 500) {
					resolve(res.data)
					if (res.data.token) {//更新token
						uni.setStorageSync("token", res.data.token)
					}
				} else if (res.data.code == 600) {
					// uni.showToast({
					// 	title: '身份驗(yàn)證過(guò)期,請(qǐng)重新登錄',
					// 	icon: 'none'
					// });
					uni.navigateTo({
						url: "/pages/login/login"
					})
				} else {
					// uni.showToast({
					// 	title: '請(qǐng)求失敗,請(qǐng)重新獲取數(shù)據(jù)',
					// 	icon: 'none'
					// });
					uni.navigateTo({
						url: "/pages/login/login"
					})
				}
			},
			fail(err) {
				reject(err)
			}
		})
	})
}

export default {
	request,imgApi //向外暴露request
}

api.js里面存放api方法

import request from './request.js' //引入request.js
const api = request
export default {
	// 手機(jī)號(hào)或id加密碼登錄
	getLogin: (username, password) => {
		let user = api.request('/logins', 'POST', {
				"po": username,
				"pwd": password,
			})
			.then(res => {
				// console.log(res); //正常的數(shù)據(jù)
				return res
			})
		return user
	},
	// 驗(yàn)證碼登錄
	codeLogin: (username, code) => {
		let user = api.request('/LoginRegister', 'get', {
				"po": username,
				"code": code,
			})
			.then(res => {
				// console.log(res); //正常的數(shù)據(jù)
				return res
			})
		return user
	}
}

在頁(yè)面引入方法

import Api from "@/API/api.js";

使用方法

async login() {
                let user = await Api.codeLogin(this.username, this.password);
            }

vue2、3

request.js封裝公共請(qǐng)求頭

import axios from 'axios'
import {ElMessage} from 'element-plus'

export const request = (options) => {
    return new Promise((resolve, reject) => {
        // create an axios instance
        const service = axios.create({
            // baseURL: process.env.BASE_API, // api 的 base_url
            baseURL: 'http://xxx.com',//測(cè)試地址
            timeout: 80000 // request timeout
        })
        // request interceptor
        service.interceptors.request.use(
            config => {
                if (sessionStorage.getItem('token')) {
                    config.headers['token'] = sessionStorage.getItem('token')
                }
                return config
            },
            error => {
                // Do something with request error
                Promise.reject(error)
            }
        )
        // response interceptor
        service.interceptors.response.use(
            response => {
                return response.data
            },
            error => {
                if (error.response.data.code === 401) {
                    ElMessage.error('請(qǐng)登錄后在操作')
                    setTimeout(function () {
                        sessionStorage.clear()
                        location.reload()
                    }, 1000)
                }else if (error.response.data.code === 500){
                    ElMessage.error('服務(wù)器請(qǐng)求錯(cuò)誤,請(qǐng)稍后再試')
                }else{
                    ElMessage.error('系統(tǒng)錯(cuò)誤,請(qǐng)聯(lián)系管理員')
                }
                return Promise.reject(error)
            }
        )
        // 請(qǐng)求處理
        service(options)
            .then((res) => {
                resolve(res)
            })
            .catch((error) => {
                reject(error)
            })
    })
}
export default request

api.js文件

import {request} from '@/api/request'

// 登錄操作
export function login(data) {
    return request({
        url: '/api/index/login',
        method: 'POST',
        data
    })
}


// 獲取數(shù)據(jù)
export function getBranchPosition() {
    return request({
        url: '/api/user/get_branch_position',
        method: 'GET'
    })
}

頁(yè)面引入

import {login,?getBranchPosition} from "@/api";

?請(qǐng)求接口發(fā)起請(qǐng)求

async function get_salary() {
  let res = await getBranchPosition({
    staff_id: staff_id.value,
    month_id: time_id.value,
    branch_id: branch_id.value
  })
  console.log(res.data);
  royaltyData.value = res.data.staff
  detailData.value = res.data.detail
}

解構(gòu)寫(xiě)法文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-770248.html

async function get_salary() {
   let staff_id= staff_id.value,
   let month_id= time_id.value,
   let branch_id= branch_id.value
  let res = await getBranchPosition({
    staff_id,
    month_id,
    branch_id
  })
  console.log(res.data);
  royaltyData.value = res.data.staff
  detailData.value = res.data.detail
}

到了這里,關(guān)于vue2,3,小程序,uniapp的API請(qǐng)求封裝統(tǒng)一管理請(qǐng)求接口的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • uniapp 微信小程序請(qǐng)求攔截器 接口封裝

    前言: 請(qǐng)求攔截器可以在我們需要傳遞請(qǐng)求頭的時(shí)候使用,例如:token 也會(huì)在當(dāng)token發(fā)生變化的時(shí)候給予響應(yīng),所以我們做好對(duì)應(yīng)的判斷即可 1.首先在根目錄創(chuàng)建common文件夾, 在里面創(chuàng)建request.js文件并加入以下代碼: 2,在common文件夾下接著新建一個(gè)example.js文件來(lái)當(dāng)作接口

    2024年01月23日
    瀏覽(26)
  • uniapp 微信小程序 封裝公共的請(qǐng)求js(api版本)

    uniapp 微信小程序 封裝公共的請(qǐng)求js(api版本)

    一、新建api文件夾 在項(xiàng)目目錄下創(chuàng)建api文件夾,內(nèi)放files跟index.js文件夾,files文件夾內(nèi)放每個(gè)頁(yè)面對(duì)應(yīng)的js請(qǐng)求接口 1、index.js 2、例如:login.js 二、config.js 三、main.js 四、頁(yè)面使用

    2024年02月14日
    瀏覽(24)
  • 接口自動(dòng)化測(cè)試:Requests統(tǒng)一請(qǐng)求封裝(框架的封裝)

    一、為什么要做統(tǒng)一請(qǐng)求封裝? 1. 去除很多重復(fù)的、冗余的代碼; 2.? 異常處理和日志監(jiān)控: 設(shè)置統(tǒng)一的公共參數(shù)、統(tǒng)一的文件處理、統(tǒng)一的異常處理、統(tǒng)一的日志監(jiān)控、統(tǒng)一的用例斷言等; 3. 跨py文件實(shí)現(xiàn)通過(guò)一個(gè)session自動(dòng)管理有cookie關(guān)聯(lián)的接口; ??????????????

    2024年01月24日
    瀏覽(26)
  • vue2使用axios封裝請(qǐng)求數(shù)據(jù),教會(huì)你封裝,簡(jiǎn)單易懂,輕松學(xué)會(huì)axios封裝請(qǐng)求數(shù)據(jù) 看一眼就會(huì) 手把手教會(huì)

    2、完成上面的步驟還不夠,還需要再創(chuàng)建一個(gè)文件夾api,然后在文件夾里面創(chuàng)建自定義的文件名(我創(chuàng)建的是cartApi.js)文件名根據(jù)自己的需求命名 下面就是根據(jù)自己的請(qǐng)求接口以及數(shù)據(jù)參數(shù)請(qǐng)求,下面的請(qǐng)求是一些常見(jiàn)的post、get請(qǐng)求以及傳參啥的(僅供參考,可以參考下面

    2024年01月24日
    瀏覽(99)
  • 前端vue2中axios封裝請(qǐng)求數(shù)據(jù),教會(huì)你封裝教會(huì)你請(qǐng)求數(shù)據(jù) 簡(jiǎn)單易懂,輕松學(xué)會(huì)axios封裝請(qǐng)求數(shù)據(jù) 看一眼就會(huì) 手把手教會(huì)

    2、完成上面的步驟還不夠,還需要再創(chuàng)建一個(gè)文件夾api,然后在文件夾里面創(chuàng)建自定義的文件名(我創(chuàng)建的是cartApi.js)文件名根據(jù)自己的需求命名 下面就是根據(jù)自己的請(qǐng)求接口以及數(shù)據(jù)參數(shù)請(qǐng)求,下面的請(qǐng)求是一些常見(jiàn)的post、get請(qǐng)求以及傳參啥的(僅供參考,可以參考下面

    2024年02月03日
    瀏覽(98)
  • uniapp開(kāi)發(fā)筆記(1)——uview API接口請(qǐng)求

    在請(qǐng)求后端的時(shí)候,需要帶請(qǐng)求頭去訪問(wèn),在uview里寫(xiě)了http請(qǐng)求可以傳遞的參數(shù):詳情參考:Http請(qǐng)求 | uView 2.0 - 全面兼容nvue的uni-app生態(tài)框架 - uni-app UI框架 實(shí)戰(zhàn)代碼示例: ?在項(xiàng)目中,請(qǐng)求接口的時(shí)候,要做的是渲染列表,有的時(shí)候要給后臺(tái)發(fā)一個(gè)參數(shù),在點(diǎn)擊某個(gè)數(shù)據(jù)的

    2024年02月17日
    瀏覽(20)
  • Vue 封裝ajax請(qǐng)求[接口]函數(shù)

    Vue 封裝ajax請(qǐng)求[接口]函數(shù)

    ?? ? ? ? 在Vue項(xiàng)目開(kāi)發(fā)當(dāng)中,當(dāng)有了后端提供的數(shù)據(jù)接口之后呢,就需要來(lái)為接口定義接口的請(qǐng)求函數(shù),那么在去定義接口函數(shù)之前可以先來(lái)封裝一個(gè)ajax請(qǐng)求函數(shù);可能有的初學(xué)者在之前的一些篇目當(dāng)中看到這個(gè)vue發(fā)起數(shù)據(jù)請(qǐng)求的不是使用axios的嗎?這個(gè)確實(shí)沒(méi)有問(wèn)題,在

    2024年02月08日
    瀏覽(20)
  • vue3 封裝api接口

    新建axiosj.ts 新建狀態(tài)碼文件: 導(dǎo)出案例 ? ?export function login ?(params) { ? ? ?return request(\\\'/admin-api/system/auth/login\\\',params, \\\'post\\\') ? ?} 使用 ?

    2024年02月16日
    瀏覽(21)
  • uniapp+uview封裝小程序請(qǐng)求

    uniapp+uview封裝小程序請(qǐng)求

    uniapp項(xiàng)目引入uview庫(kù) 此步驟不再闡述 ?env.js: 該封裝文件對(duì)后端接口返回格式有規(guī)范要求 如接口格式跟封裝文件不匹配 可通過(guò) request.js 中響應(yīng)攔截進(jìn)行修改? 接口返回格式示例: request.js: 在根目錄main文件內(nèi)引入 ?以為 login.js 為例 該P(yáng)OST登錄請(qǐng)求的 login函數(shù)名? 需對(duì)應(yīng)第二

    2024年02月13日
    瀏覽(23)
  • 【小程序】網(wǎng)絡(luò)請(qǐng)求API介紹及網(wǎng)絡(luò)請(qǐng)求的封裝

    網(wǎng)絡(luò)請(qǐng)求基本演練 微信提供了專屬的API接口,用于網(wǎng)絡(luò)請(qǐng)求: wx.request(Object object) 屬性 類型 默認(rèn)值 必填 說(shuō)明 url string 是 開(kāi)發(fā)者服務(wù)器接口地址 data string/object/ArrayBuffer 否 請(qǐng)求的參數(shù) header Object 否 設(shè)置請(qǐng)求的 header,header 中不能設(shè)置 Referer。 content-type 默認(rèn)為 application/json tim

    2023年04月09日
    瀏覽(19)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包