ajax請求封裝

能發(fā)起ajax請求的函數(shù)模塊

:方法一

函數(shù)的返回值是promise對象
//如果使用npm加載axios則只需要在入口文件main中引入即可
import axios from 'axios'
export default function ajax(url, data=>{ }, type='GET'){
//發(fā)送GET請求
if(type==='GET'){ 
//拼接字符串
//data:{username :tom,password:123}
//paramStr:username=tom&password=123
let paramStr=' '
Object.keys(data).forEach(key=>{
 paramStr += key + ' = ' + data[key] + ' & '
})
if(paramStr){
  paramStr=paramStr.substring(0, paramStr.length-1)
}
  return axios.get(url + ' ? ' +paramStr)
}else{
//發(fā)送POST請求
  retuen axios.post(url,data)
}
 
}
進(jìn)行接口請求封裝
import ajax from './ajax'
//假設(shè)注冊接口
export const  reqRegister = (user)=>ajax('/register', user ,'POST')
//登錄接口
export const  reqLogin = ({username,password})=>ajax('/login', {username,password} , 'POST')

:方法二

/* 
封裝的能發(fā)ajax請求的函數(shù), 向外暴露的本質(zhì)是axios
1. 解決post請求攜帶參數(shù)的問題: 默認(rèn)是json, 需要轉(zhuǎn)換成urlencode格式
2. 讓請求成功的結(jié)果不再是response, 而是response.data的值
3. 統(tǒng)一處理所有請求的異常錯(cuò)誤
*/
import axios from 'axios'
import qs from 'qs'
import {message} from 'antd'

// 添加請求攔截器: 讓post請求的請求體格式為urlencoded格式 a=1&b2
// 在真正發(fā)請求前執(zhí)行
axios.interceptors.request.use(function (config) {
  // 得到請求方式和請求體數(shù)據(jù)
  const {method, data} = config
  // 處理post請求, 將data對象轉(zhuǎn)換成query參數(shù)格式字符串
  if (method.toLowerCase() === 'post' && typeof data==='object') {
    config.data = qs.stringify(data) // username=admin&password=admin
  }

  return config
})


// 添加響應(yīng)攔截器
  // 功能1: 讓請求成功的結(jié)果不再是response, 而是response.data的值
  // 功能2: 統(tǒng)一處理所有請求的異常錯(cuò)誤
// 在請求返回之后且在我們指定的請求響應(yīng)回調(diào)函數(shù)之前
axios.interceptors.response.use(function (response) {
  
  return response.data // 返回的結(jié)果就會(huì)交給我們指定的請求響應(yīng)的回調(diào)
  // return response // 返回的結(jié)果就會(huì)交給我們指定的請求響應(yīng)的回調(diào)
}, function (error) { // 統(tǒng)一處理所有請求的異常錯(cuò)誤
  message.error('請求出錯(cuò) ' + error.message)
  // return Promise.reject(error);
  // 返回一個(gè)pending狀態(tài)的promise, 中斷promise鏈
  return new Promise(() => {})
});


export default axios
進(jìn)行接口請求封裝
/* 
包含應(yīng)用中所有請求接口的函數(shù): 接口請求函數(shù)
函數(shù)的返回值都是promise對象
*/
import jsonp from 'jsonp'  // axios不能發(fā)jsonp請求
import ajax from './ajax'
import { message } from 'antd';

// const BASE = 'http://localhost:5000'
const BASE = ''

// 請求登陸
export const reqLogin = (username, password) =>  ajax.post(BASE + '/login', {username, password})
// 添加分類
export const reqAddCategory = (categoryName) => ajax.post(BASE + '/manage/category/add', {
  categoryName
})
// 修改分類
export const reqUpdateCategory = ({categoryId, categoryName}) => ajax.post(BASE + '/manage/category/update', {
  categoryId,
  categoryName
})

// 根據(jù)分類id獲取分類
export const reqCategory = (categoryId) => ajax(BASE + '/manage/category/info', {
  params: {
    categoryId
  }
})

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末厂抽,一起剝皮案震驚了整個(gè)濱河市唤锉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌殉摔,老刑警劉巖晴弃,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件应狱,死亡現(xiàn)場離奇詭異咪笑,居然都是意外死亡唧席,警方通過查閱死者的電腦和手機(jī)零渐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門窒舟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人诵盼,你說我怎么就攤上這事惠豺。” “怎么了风宁?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵洁墙,是天一觀的道長。 經(jīng)常有香客問我戒财,道長热监,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任饮寞,我火速辦了婚禮孝扛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘骂际。我一直安慰自己疗琉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布歉铝。 她就那樣靜靜地躺著盈简,像睡著了一般。 火紅的嫁衣襯著肌膚如雪太示。 梳的紋絲不亂的頭發(fā)上柠贤,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機(jī)與錄音类缤,去河邊找鬼臼勉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛餐弱,可吹牛的內(nèi)容都是我干的宴霸。 我是一名探鬼主播囱晴,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瓢谢!你這毒婦竟也來了畸写?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤氓扛,失蹤者是張志新(化名)和其女友劉穎枯芬,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體采郎,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡千所,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蒜埋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淫痰。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖理茎,靈堂內(nèi)的尸體忽然破棺而出黑界,到底是詐尸還是另有隱情管嬉,我是刑警寧澤皂林,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站蚯撩,受9級特大地震影響础倍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜胎挎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一沟启、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧犹菇,春花似錦德迹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至称杨,卻和暖如春肌毅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背姑原。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工悬而, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人锭汛。 一個(gè)月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓笨奠,卻偏偏與公主長得像袭蝗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子般婆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345