剛入門vue ,打算用vue的腳手架做一個小項目。需要用到第三方的api,無奈遇到各種各樣的問題。 比如 Access-Control-Allow-Origin ,或者使用了ajax的jsonp模式之後也會出現個別api不相容這個模式而出現另一個錯誤。還有的需要修改後端php之類的,頭大。 後來又聽 ...
剛入門vue ,打算用vue的腳手架做一個小項目。需要用到第三方的api,無奈遇到各種各樣的問題。
比如 Access-Control-Allow-Origin ,或者使用了ajax的jsonp模式之後也會出現個別api不相容這個模式而出現另一個錯誤。還有的需要修改後端php之類的,頭大。
後來又聽說了proxyTable,需要修改config/Index.js裡面的內容。 無奈創建的項目沒有該文件(怪我官網的內容沒看仔細,也沒有好好看控制台vue的幫助指令)。今天無意中看到可以用vue init [project-name]的方式創建項目這樣子就會有index.js文件了。
至此就可以使用該文件的proxyTable方法了。
第一步:設置mian.js 中axios的引入方式
import axios from 'axios'
Vue.prototype.$ajax = axios
網上的說法是$ajax相當於axios的別名,按我的理解命名成別得應該也可以吧。
第二步:以知乎的獲取不知道是熱門還是最新內容的api為例(網上例子里拿來的)
【https://news-at.zhihu.com/api/4/news/latest】首先在index.js文件內的正確位置添加
dev: { //別的有了的內容可以不用管它,設置proxyTable就好了 proxyTable: { '/news/latest': { target: ' https://news-at.zhihu.com/api/4/',//介面功能變數名稱+如果有埠 + 後續 changeOrigin: true,//是否跨域 // pathRewrite: { // '^/news/latest': '/news/latest'//需要rewrite重寫 // } //這個什麼ppathRewrite沒有搞明白.反正沒設置這個能用我也沒有管它了- - } },
修改config.js文件夾後, 通常需要重啟一下這個服務才能生效(或許不是通常是必須)
第三步:最後就可以在你的vue文件下使用該api了
this.$ajax({ url: '/news/latest'', //這裡就是上面target上面那個內容 //params: { type: 'hot'}, //這個params就是get參數的data,不過在這裡不需要.給自己提個醒 method: 'get', withCredentials: true }).then(data=> { console.log(data); }).catch(error => { console.log(error); })
最後運行打開網站如果在Console里可以看到data就說明成功了。yeah 餘汪汪萬歲
做個筆記省的下次自己忘記了又要上網找的焦頭爛額的,內容估計說的亂七八糟的。
不知道這樣子做有沒有什麼安全隱患,我覺得應該會是有的吧