天津企業(yè)網(wǎng)站模板建站哪家好搜索自媒體平臺(tái)
不知道大家有沒有過這種感覺,突然一個(gè)問題百思不得其解,然后突然有一天就明白了。然后就感覺這個(gè)問題原來這么簡(jiǎn)單,本來想記錄下來,但是又感覺這么簡(jiǎn)單的問題記錄下來沒啥意義。但是回過頭來想一想,這個(gè)問題之前其實(shí)困擾了你很長時(shí)間。感覺還是記錄一下比較好,萬一哪一天突然對(duì)這個(gè)問題有了新的擴(kuò)展呢?
先來回顧一下axios的基本使用,怎么發(fā)送一個(gè)請(qǐng)求:
發(fā)送get請(qǐng)求
// 發(fā)送的鏈接就是 https://www.baidu.com?a=1
axios.get('https://www.baidu.com', { params: { a: 1 } })// 或者這樣
axios({method: "get",url: 'https://www.baidu.com',params: { a: 1 }
})// 如果發(fā)送一個(gè)帶請(qǐng)求頭的就是這樣
axios.get('https://www.baidu.com', { params: { a: 1 }, headers: { token: "123" } })// 或者這樣
axios({method: "get",url: 'https://www.baidu.com',params: { a: 1 },headers: { token: "111" }
})
發(fā)送post請(qǐng)求
axios.post('https://www.baidu.com', { a: 1 })// 或者這樣
axios({method: "post",url: 'https://www.baidu.com',data: { a: 1 }
})// 如果發(fā)送一個(gè)帶請(qǐng)求頭的就是這樣
axios.post('https://www.baidu.com', { a: 1 }, { headers: { token: "123" } })// 或者這樣
axios({method: "post",url: 'https://www.baidu.com',data: { a: 1 },headers: { token: "111" }
})
這里我們可以發(fā)現(xiàn)
axios.get
可以傳遞兩個(gè)參數(shù) url
和其他參數(shù)
axios.post
可以傳遞三個(gè)參數(shù) url
、請(qǐng)求發(fā)出去的參數(shù)
、其他參數(shù)
好像不方便記憶,一會(huì)傳2個(gè),一會(huì)傳3個(gè)的。所以一般情況下,即使是對(duì)項(xiàng)目封裝網(wǎng)絡(luò)請(qǐng)求,我也會(huì)使用axios()
去封裝,而不是使用axios.get
和axios.post
。
那么使用axios()
,get請(qǐng)求時(shí)如果給請(qǐng)求傳一些參數(shù),那么可以使用params
,例如:
axios({method: "get",url: 'https://www.baidu.com',params: { a: 1 }
})
而使用post的時(shí)候需要使用data
,例如:
axios({method: "post",url: 'https://www.baidu.com',data: { a: 1 }
})
好奇掛啊,為什么不能使用同一個(gè)參數(shù)呢?其實(shí)params
和data
有各自的使用意義。
params
是拼接在url后面的參數(shù)
data
是請(qǐng)求體里面的參數(shù)
例如發(fā)送post的時(shí)候
axios({method: "post",url: 'https://www.baidu.com',data: { a: 1 },params: { a: 2 }
})
上面例子a=1
會(huì)放在url后面拼接,而a=2
會(huì)在請(qǐng)求體中。所以params
和data
其實(shí)是各司其職的。
那么再來看一下,如果像使用axios.post
,我既想在url后面拼接參數(shù),又想在請(qǐng)求體里面有參數(shù),該怎么寫呢?
axios.post('https://www.baidu.com', { a: 1 }, { params: { a: 1 }, headers: { token: "123" } })
所以還是感覺直接調(diào)用axios
好用