隨著前端向后端發(fā)送請求的需求越來越多,現(xiàn)在越來越多的開發(fā)者開始使用axios來發(fā)送請求。axios是一個(gè)基于Promise的HTTP客戶端,可以向服務(wù)器發(fā)送GET、POST、PUT等請求。
當(dāng)需要向服務(wù)器發(fā)送POST請求時(shí),常常需要向服務(wù)器傳遞json格式的數(shù)據(jù)。這時(shí)候,axios可以通過設(shè)置headers選項(xiàng)來指定請求的Content-Type為application/json,并且通過將請求的body設(shè)置為JSON.stringify后的json值來向后端發(fā)送json數(shù)據(jù)。
axios.post(url, { data: JSON.stringify({ key1: value1, key2: value2, key3: value3 }) }, { headers: { 'Content-Type': 'application/json' } }).then(response =>{ console.log(response) }).catch(error =>{ console.log(error) })
在上面的代碼中,我們可以看到axios.post方法的第二個(gè)參數(shù)是一個(gè)對象data,用來指定請求的body。在這個(gè)對象中,我們將需要發(fā)送的json數(shù)據(jù)進(jìn)行了JSON.stringify,將其轉(zhuǎn)換為字符串。
同時(shí),我們還設(shè)置了請求的headers,將Content-Type設(shè)置為application/json,告訴后端我們會(huì)發(fā)送JSON格式的數(shù)據(jù)。
最后,我們還使用了Promise的.then和.catch方法,分別處理請求成功和失敗時(shí)的操作。
總之,通過axios發(fā)送POST請求并帶上JSON數(shù)據(jù)非常簡單,只需要在請求中設(shè)置headers為application/json,并將請求的body設(shè)置為JSON.stringify后的json值即可。這使得向后端發(fā)送JSON數(shù)據(jù)的操作變得非常方便,同時(shí)也保證了數(shù)據(jù)的準(zhǔn)確性。