Axios 是一個基於 promise 的 HTTP 庫,可以用在瀏覽器和 node.js 中。 由於使用了 es6 的 promise 所以指兼容高版本瀏覽器
配置全局的 axios 默認值
axios.defaults.baseURL = 'https://api.example.com'
axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'
一、get請求
1. axios.get(url[,config])
axios.get('/api/crm/v1/order/list?pages=1&token=YmEzYWZ') //可以將信息拼接在url后面
.then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); });
//可以將信息放在config對象中,需要注意的是 post方式對應的是 data 而 get方式對應的是 params
axios('/api/crm/v1/order/list',{ params:{ pages: 1, token: 'YmEzYWZkMWUzZDI0ZmI0NDc3NDJjNDU2ZGFjNjc1NDk3YmVmMjE3MQ==' } })
2. axios(config) 、axios(url[,config])、 axios.request(config)
所有的方式會將參數合並到一個對象中,作為config參數最終調用 axios.request 接口
axios({
method: 'get', url: '/api/crm/v1/order/list', params:{ pages: 1, token: 'YmEzYWZkMWUzZDI0ZmI0NDc3NDJjNDU2ZGFjNjc1NDk3YmVmMjE3MQ==' } })
二、post請求
1. axios.post(url[,data[,config]])
沒有設置全局Content-Type,config也沒有設置Content-Type時 axios會根據data的類型設置相應的 Content-Type;
如果Content-Type 為 application/x-www-form-urlencoded;charset=utf-8,不同於jquery.ajax的post方式可以直接傳入數組或是對象,因為jquery會在內部調用 jquery.param 方法創建數組或對象的序列化表示。但是在axios 中只對get方式傳入的對象或是數組進行了序列化處理。post方式需要我們自己進行序列化處理。node中可以使用 querystring.stringify 方法。
axios.post('/api/crm/v1/order/list', 'page=1&token=YmEzYWZk')
axios.post('/api/crm/v1/order/list', '', { data: 'page=1&token=YmEzYWZk', headers:{ 'content-type': 'application/x-www-form-urlencoded;charset=utf-8' } })
2. axios(config) 、axios(url[,config])、 axios.request(config)
axios({
method: 'post', url: '/api/crm/v1/order/list', data: 'page=1&token=YmEzYWZk' })