vue-resource?獲取本地json數(shù)據(jù)404問(wèn)題的解決
vue-resource 獲取本地json數(shù)據(jù)404
在使用vue-cli搭建的vue項(xiàng)目中,使用vue-resource請(qǐng)求本地的json格式數(shù)據(jù),來(lái)模仿服務(wù)端返回?cái)?shù)據(jù)流程,但是請(qǐng)求不到j(luò)son數(shù)據(jù),返回404。
在網(wǎng)上查詢了大量資料,大都是以前的版本,在build的dev-server.js中進(jìn)行修改。但是最新的版本已經(jīng)廢除了dev-sever.js文件。
VUE開(kāi)發(fā)請(qǐng)求本地?cái)?shù)據(jù)的配置,早期的vue-cli下面有dev-server.js和dev-client.js兩文件,請(qǐng)求本地?cái)?shù)據(jù)在dev-server.js里配置,最新的vue-webpack-template 中已經(jīng)去掉了dev-server.js和dev-client.js 改用webpack.dev.conf.js代替,所以 配置本地訪問(wèn)在webpack.dev.conf.js里配置。
但是以上步驟非常麻煩且有很多坑。
解決vue-resource使用本地json模擬服務(wù)端數(shù)據(jù)請(qǐng)求問(wèn)題: vue-resource 的安裝:
cnpm install vue-resource --save
在main.js中導(dǎo)入并使用
import vueResource from 'vue-resource'; Vue.use(vueResource);
模擬后臺(tái)數(shù)據(jù)的json文件必須放在static目錄下,其他目錄不能訪問(wèn)
讀取數(shù)據(jù)
調(diào)用成功之后返回?cái)?shù)據(jù)
什么是vue-resource?
vue-resource是Vue.js的一款插件,它可以通過(guò)XMLHttpRequest或JSONP發(fā)起請(qǐng)求并處理響應(yīng),也就是說(shuō),jQuery中ajax能做的事情,vue-resource插件一樣也能做到,而且vue-resource的API更為簡(jiǎn)潔。
此外,vue-resource還提供了非常有用的inteceptor功能,使用inteceptor可以在請(qǐng)求前和請(qǐng)求后附加一些行為,比如使用inteceptor在ajax請(qǐng)求時(shí)顯示loading界面。
vue-resource是不是已經(jīng)不那么陌生了,接下來(lái)我們就來(lái)看看vue-resouce的具體使用方法:
// 因?yàn)関ue-resource依賴于vue.js,所以要先引入vue.js <script src="js/vue.js"></script> <script src="js/vue-resource.js"></script>
引入插件以后,我們?cè)賮?lái)看看它怎么使用:
// 全局引用 Vue.http.get('/someUrl', [options]).then(successCallback, errorCallback); Vue.http.post('/someUrl', [body], [options]).then(successCallback, errorCallback); // 基于某個(gè)Vue實(shí)例使用 var vm = new Vue(); vm.$http.get('/someUrl', [options]).then(successCallback, errorCallback); vm.$http.post('/someUrl', [body], [options]).then(successCallback, errorCallback);
可以看到,在發(fā)出請(qǐng)求以后,會(huì)有一個(gè)then對(duì)callback進(jìn)行處理,看到then我們就會(huì)想到ES6里面的promise函數(shù),這里確實(shí)是在promise的基礎(chǔ)上進(jìn)行封裝的。為了方便,我們可以在回調(diào)函數(shù)中使用箭
頭函數(shù),示例如下:
Vue.http.get('/someUrl', [options]).then((response) => { ? // 成功回調(diào)函數(shù) }).catch((error) => { ? ?// 錯(cuò)誤回調(diào)函數(shù),會(huì)在整個(gè)請(qǐng)求過(guò)程中監(jiān)聽(tīng)錯(cuò)誤 })
vue-resource總共提供了7種請(qǐng)求API,如下所示:
get(url, [options])
head(url, [options])
delete(url, [options])
jsonp(url, [options])
post(url, [body], [options])
put(url, [body], [options])
patch(url, [body], [options])
值得注意的是API中的options屬性,發(fā)送請(qǐng)求時(shí)的options選項(xiàng)對(duì)象包含以下屬性:
參數(shù) | 類型 | 描述 |
---|---|---|
url | string | 請(qǐng)求的URL |
method | string | 請(qǐng)求的HTTP方法,例如:'GET', 'POST'或其他HTTP方法 |
body | Object, FormData string | request body |
params | Object | 請(qǐng)求的URL參數(shù)對(duì)象 |
headers | Object | request header |
timeout | number | 單位為毫秒的請(qǐng)求超時(shí)時(shí)間 (0 表示無(wú)超時(shí)時(shí)間) |
before | function(request) | 請(qǐng)求發(fā)送前的處理函數(shù),類似于jQuery的beforeSend函數(shù) |
progress | function(event) | ProgressEvent回調(diào)處理函數(shù) |
credentials | boolean | 表示跨域請(qǐng)求時(shí)是否需要使用憑證 |
emulateHTTP | boolean | 發(fā)送PUT, PATCH, DELETE請(qǐng)求時(shí)以HTTP POST的方式發(fā)送,并設(shè)置請(qǐng)求頭的X-HTTP-Method-Override |
emulateJSON | boolean | 將request body以application/x-www-form-urlencoded content type發(fā)送(表單形式發(fā)送) |
response對(duì)象包含以下屬性:
方法 | 類型 | 描述 |
---|---|---|
text() | string | 以string形式返回response body |
json() | Object | 以JSON對(duì)象形式返回response body |
blob() | Blob | 以二進(jìn)制形式返回response body |
屬性 | 類型 | 描述 |
ok | boolean | 響應(yīng)的HTTP狀態(tài)碼在200~299之間時(shí),該屬性為true |
status | number | 響應(yīng)的HTTP狀態(tài)碼 |
statusText | string | 響應(yīng)的狀態(tài)文本 |
headers | Object | 響應(yīng)頭 |
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue時(shí)間格式總結(jié)以及轉(zhuǎn)換方法詳解
項(xiàng)目中后臺(tái)返回的時(shí)間有多種形式,時(shí)間戳、ISO標(biāo)準(zhǔn)時(shí)間格式等,我們需要轉(zhuǎn)化展示成能看的懂得時(shí)間格式,下面這篇文章主要給大家介紹了關(guān)于vue時(shí)間格式總結(jié)以及轉(zhuǎn)換方法的相關(guān)資料,需要的朋友可以參考下2022-12-12Vue項(xiàng)目自動(dòng)轉(zhuǎn)換 px 為 rem的實(shí)現(xiàn)方法
這篇文章主要介紹了Vue項(xiàng)目自動(dòng)轉(zhuǎn)換 px 為 rem的實(shí)現(xiàn)方法,本文是通過(guò)一系列的配置后,轉(zhuǎn)換成熱門,具體內(nèi)容詳情大家跟隨小編一起通過(guò)本文學(xué)習(xí)吧2018-10-10解決vue中使用less/sass及使用中遇到無(wú)效的問(wèn)題
這篇文章主要介紹了解決vue中使用less/sass及使用中遇到無(wú)效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10vue3如何使用vant-picker封裝省市二級(jí)聯(lián)動(dòng)
這篇文章主要介紹了vue3如何使用vant-picker封裝省市二級(jí)聯(lián)動(dòng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10vue使用watch監(jiān)聽(tīng)props的技巧分享
這篇文章主要為大家詳細(xì)介紹了vue使用watch監(jiān)聽(tīng)props的一些小建議,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12vue3+vite+ts使用require.context問(wèn)題
這篇文章主要介紹了vue3+vite+ts使用require.context問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05vue如何在多個(gè)不同服務(wù)器下訪問(wèn)不同地址
這篇文章主要介紹了vue如何在多個(gè)不同服務(wù)器下訪問(wèn)不同地址,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04