中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

建設(shè)綜合購物網(wǎng)站建站abc

建設(shè)綜合購物網(wǎng)站,建站abc,設(shè)計網(wǎng)站printerest,利用wordpress的page可以直接在antdPro項目的app.tsx文件中對request進(jìn)行運(yùn)行時配置,并且該配置會直接透傳到umi-request的全局配置。后續(xù)直接從umi中引入request或者useRequest直接使用,可以說是非常方便。文檔可查看:umi.js 具體配置代碼: import…

可以直接在antdPro項目的app.tsx文件中對request進(jìn)行運(yùn)行時配置,并且該配置會直接透傳到umi-request的全局配置。后續(xù)直接從umi中引入request或者useRequest直接使用,可以說是非常方便。文檔可查看:umi.js

具體配置代碼:

import { history, Link, RequestConfig } from 'umi';
/**** 對request進(jìn)行運(yùn)行時配置,并且該配置會直接透傳到umi-request的全局配置。* 后續(xù)直接從umi中引入request或者useRequest直接使用,可以說是非常方便。*/
/** 請求攔截 */
const requestInterceptor = (url: any, options: any): any => {const headers = {...options.headers,//此處需要修改一下邏輯判斷Authorization: localStorage.getItem('token') || '1213',};return {url: url,options: { ...options, headers: headers },};
};
/** 響應(yīng)攔截 */
const responseInterceptors = (response: any, options: any): any => {if (response.status !== 200) {switch (response.status) {case 401:history.push('/login');break;}}return response;
};
/** 異常處理程序 */
const codeMessage = {200: '服務(wù)器成功返回請求的數(shù)據(jù)。',201: '新建或修改數(shù)據(jù)成功。',202: '一個請求已經(jīng)進(jìn)入后臺排隊(異步任務(wù))。',204: '刪除數(shù)據(jù)成功。',400: '發(fā)出的請求有錯誤,服務(wù)器沒有進(jìn)行新建或修改數(shù)據(jù)的操作。',401: '用戶沒有權(quán)限(令牌、用戶名、密碼錯誤)。',403: '用戶得到授權(quán),但是訪問是被禁止的。',404: '發(fā)出的請求針對的是不存在的記錄,服務(wù)器沒有進(jìn)行操作。',406: '請求的格式不可得。',410: '請求的資源被永久刪除,且不會再得到的。',422: '當(dāng)創(chuàng)建一個對象時,發(fā)生一個驗證錯誤。',500: '服務(wù)器發(fā)生錯誤,請檢查服務(wù)器。',502: '網(wǎng)關(guān)錯誤。',503: '服務(wù)不可用,服務(wù)器暫時過載或維護(hù)。',504: '網(wǎng)關(guān)超時。',
};
const errorHandler = (error: any) => {const { response } = error;if (response && response.status) {const errorText = codeMessage[response.status] || response.statusText;const { status, url } = response;throw new Error(`請求錯誤 ${status}: ${url}${errorText}`);} else if (!response) {throw new Error('您的網(wǎng)絡(luò)發(fā)生異常,無法連接服務(wù)器');}return response;
};// request運(yùn)行時配置
export const request: RequestConfig = {timeout: 30000, //請求超時時間// prefix: process.env.NODE_ENV === "production" ? config.baseurl :'api/', // 統(tǒng)一的請求前綴// 自定義端口規(guī)范(可以對后端返回的數(shù)據(jù)格式按照我們的需求進(jìn)行處理)errorConfig: {adaptor: (resData) => {debugger;return {...resData,};},},middlewares: [],errorHandler: (error) => {errorHandler(error);}, //請求錯誤處理requestInterceptors: [requestInterceptor], //請求攔截responseInterceptors: [responseInterceptors], //響應(yīng)攔截
};
/**------------------------------------------------------------------配置結(jié)束請求攔截------------------------------------------ */

?

這段代碼是一個請求配置對象 `request`,其中包含了請求攔截、響應(yīng)攔截和異常處理的相關(guān)邏輯。這些邏輯會在發(fā)起請求和接收響應(yīng)時進(jìn)行處理。

首先,定義了一個 `requestInterceptor` 函數(shù)用于請求攔截。該函數(shù)會將存儲在本地存儲中的令牌添加到請求頭的 `token` 字段中,并將修改后的請求頭放入 `options` 中返回。

接下來,定義了一個 `responseInterceptors` 函數(shù)用于響應(yīng)攔截。該函數(shù)會在響應(yīng)狀態(tài)碼不為 200 時進(jìn)行處理。其中,當(dāng)響應(yīng)狀態(tài)碼為 401 時,會導(dǎo)航到登錄頁面并彈出提示信息。

然后,定義了一個異常處理程序 `errorHandler`。該程序會根據(jù)響應(yīng)狀態(tài)碼來判斷異常類型,并拋出相應(yīng)的錯誤信息。

接下來,定義了一個 `codeMessage` 對象,它存儲了一些常見的響應(yīng)狀態(tài)碼和對應(yīng)的錯誤消息。

最后,定義了一個 `request` 對象,包含了一些運(yùn)行時配置。其中包括了請求超時時間、錯誤處理函數(shù)、請求攔截器和響應(yīng)攔截器等。

需要注意的是,這段代碼可能還需要引入一些外部依賴,比如 `localStorage` 和 `history`。你需要根據(jù)你的實際環(huán)境和需求進(jìn)行適配和修改。

總之,這段代碼封裝了請求攔截、響應(yīng)攔截和異常處理的邏輯,將它們作為配置項進(jìn)行統(tǒng)一管理。

?后續(xù)使用直接從umi中引入request 或者 useRequest,配置即生效

//后續(xù)使用直接從umi中引入request 或者 useRequest,配置即生效import { request } from 'umi';export function login(body: API.LoginParams, options?: Record<string, any>) {return request<API.LoginResult>('/devServer/users/login', {method: 'POST',headers: {'Content-Type': 'application/json',},data: body,...(options || {}),});
}

?

這段代碼是一個登錄請求的示例代碼。它使用了之前定義的 `request` 對象來發(fā)送登錄請求。

在 `login` 函數(shù)中,通過 `request` 對象發(fā)送了一個 POST 請求到 `/devServer/users/login` 接口。請求的主體內(nèi)容是 `body` 參數(shù),請求頭中設(shè)置了 `Content-Type` 為 `application/json`。`options` 參數(shù)可以傳入額外的請求配置,如超時時間等。

`request` 函數(shù)返回一個 Promise 對象,該 Promise 對象的泛型參數(shù)指定了響應(yīng)數(shù)據(jù)的類型為 `API.LoginResult`。

使用這段代碼時,你需要根據(jù)實際情況修改請求的接口地址和請求體的類型。

總之,這段代碼使用了之前定義的 `request` 對象來發(fā)送登錄請求,并返回一個 Promise 對象,以便后續(xù)處理響應(yīng)數(shù)據(jù)。

http://www.risenshineclean.com/news/47630.html

相關(guān)文章:

  • 視頻網(wǎng)站建設(shè) 方案網(wǎng)絡(luò)營銷的類型
  • 優(yōu)化對網(wǎng)站真的非常有用嗎廣告聯(lián)盟怎么加入
  • 東營建設(shè)信息網(wǎng)老網(wǎng)站深圳百度地圖
  • wordpress 獲取文章圖片標(biāo)題網(wǎng)絡(luò)營銷優(yōu)化
  • 維啟網(wǎng)站建設(shè)商品推廣軟文800字
  • 餐飲手機(jī)微網(wǎng)站怎么做今日頭條熱搜
  • wordpress菜單右上角北侖seo排名優(yōu)化技術(shù)
  • 怎么做誠信通網(wǎng)站的店招鄭州網(wǎng)絡(luò)推廣代理顧問
  • 河南建設(shè)監(jiān)理協(xié)會官方網(wǎng)站自動點擊競價廣告軟件
  • 網(wǎng)站建設(shè)技術(shù)協(xié)議書營銷策劃方案公司
  • 網(wǎng)站制作完成之后進(jìn)入了什么階段百度一下網(wǎng)頁版瀏覽器
  • 一元購物網(wǎng)站怎么做百度推廣seo自學(xué)
  • 寧夏 網(wǎng)站開發(fā)最近10條重大新聞
  • 在工商網(wǎng)站上怎么做電話的變更網(wǎng)絡(luò)營銷的十種方法
  • 做臨時工有哪些網(wǎng)站谷歌瀏覽器 安卓下載
  • 怎么做ebay網(wǎng)站設(shè)計個人網(wǎng)站
  • b2b 網(wǎng)站開發(fā)91關(guān)鍵詞
  • 新鄉(xiāng)市做網(wǎng)站直銷系統(tǒng)網(wǎng)站色盲測試圖看圖技巧
  • 免費的海報模板網(wǎng)站優(yōu)化關(guān)鍵詞的方法
  • 海淀區(qū)玉泉小學(xué)網(wǎng)站 建設(shè)方百度搜索大數(shù)據(jù)查詢
  • 婚禮策劃網(wǎng)站模板中文網(wǎng)絡(luò)營銷課程學(xué)什么
  • 中國建設(shè)教育網(wǎng)官方網(wǎng)站哈爾濱推廣優(yōu)化公司
  • 網(wǎng)站建設(shè)便宜的公司北京公司排名seo
  • 鄭州建設(shè)網(wǎng)站定制seo優(yōu)化網(wǎng)站推廣全域營銷獲客公司
  • 免費只做網(wǎng)站英文seo外鏈
  • 朔州做網(wǎng)站公司網(wǎng)絡(luò)營銷策劃怎么寫
  • 服裝 網(wǎng)站模板 wordpress哪里可以免費推廣廣告
  • 提高網(wǎng)站排名淘寶seo搜索優(yōu)化工具
  • 學(xué)vue可以做pc網(wǎng)站福州百度首頁優(yōu)化
  • 設(shè)計素材網(wǎng)站p谷歌廣告聯(lián)盟一個月能賺多少