vuejs 2 後 做者尤雨溪發佈消息,再也不繼續維護vue-resource,官方推薦大axios。javascript
Axios 是一個基於 promise 的 HTTP 庫,能夠用在瀏覽器和 node.js 中。php
特性:css
從瀏覽器中建立 XMLHttpRequestshtml
從 node.js 建立 http 請求vue
支持 Promise APIjava
攔截請求和響應node
轉換請求數據和響應數據jquery
取消請求webpack
自動轉換 JSON 數據ios
客戶端支持防護 XSRF
一、 利用npm安裝npm install axios --save
二、 利用bower安裝bower install axios --save
三、 直接利用cdn引入<script src="https://cdn.bootcss.com/axios/0.18.0/axios.js"></script>
假如你安裝了vue腳手架,則在main.js文件中添加以下代碼:
而後在組件中能夠這樣使用了:
說明:
安裝其餘插件的時候,能夠直接在 main.js 中引入並使用 Vue.use()來註冊,可是 axios並非vue插件,因此不能使用Vue.use(),因此只能在每一個須要發送請求的組件中即時引入。
爲了解決這個問題,咱們在引入 axios 以後,經過修改原型鏈,來更方便的使用。
攜帶參數:
或
處理併發請求的助手函數
axios(url[, config])
請求方法的別名
爲方便起見,爲全部支持的請求方法提供了別名
axios.request(config)
axios.get(url[, config])
axios.delete(url[, config])
axios.head(url[, config])
axios.post(url[, data[, config]])
axios.put(url[, data[, config]])
axios.patch(url[, data[, config]])
NOTE
在使用別名方法時, url、method、data 這些屬性都沒必要在配置中指定。
跨域的解決辦法有不少,好比script標籤 、jsonp、後端設置cros等等...,可是我這裏講的是webpack配置vue 的 proxyTable解決跨域。
這裏我請求的地址是 http://www.thenewstep.cn/test/testToken.php
那麼在ProxyTable中具體配置以下:
target:就是須要請求地址的接口域名。
這裏列舉了1種數據請求方式:axios
main.js代碼:
axios請求頁面代碼:
這裏的'apis'就是在ProxyTable中配置的'/apis'。
可使用自定義配置新建一個 axios 實例
axios.create([config])
實例:http組件
實例方法
如下是可用的實例方法。指定的配置將與實例的配置合併
axios#request(config)
axios#get(url[, config])
axios#delete(url[, config])
axios#head(url[, config])
axios#post(url[, data[, config]])
axios#put(url[, data[, config]])
axios#patch(url[, data[, config]])
請求配置
這些是建立請求時能夠用的配置選項。只有 url 是必需的。若是沒有指定 method,請求將默認使用 get 方法。
響應結構
某個請求的響應包含如下信息
使用 then 時,你將接收下面這樣的響應:
在使用 catch 時,或傳遞 rejection callback 做爲 then 的第二個參數時,響應能夠經過 error 對象可被使用,正如在錯誤處理這一節所講。
配置的默認值/defaults
你能夠指定將被用在各個請求的配置默認值
全局的 axios 默認值
自定義實例默認值
配置的優先順序
配置會以一個優先順序進行合併。這個順序是:在 lib/defaults.js 找到的庫的默認值,而後是實例的 defaults 屬性,最後是請求的 config 參數。後者將優先於前者。這裏是一個例子:
一、發送以前能夠對請求進行攔截,還能夠攔截響應,相似中間件。你能夠在請求、響應在到達then/catch以前攔截他們。
二、取消攔截器:
三、 給自定義的axios實例添加攔截器:
可使用 validateStatus 配置選項定義一個自定義 HTTP 狀態碼的錯誤範圍。
使用 cancel token 取消請求
Axios 的 cancel token API 基於cancelable promises proposal,它還處於第一階段。
可使用 CancelToken.source 工廠方法建立 cancel token,像這樣:
還能夠經過傳遞一個 executor 函數到 CancelToken 的構造函數來建立 cancel token:
Note : 可使用同一個 cancel token 取消多個請求
http.js
在main.js中引入http,並修改原型鏈方便使用(同上面的第二大點)
這樣,就能夠在任何地方使用了:
Table.vue