vue中使用axios最詳細教程

前提條件:vue-cli 項目

安裝:

npm
npm
在main.js導入:

// 引入axios,并加到原型鏈中
import axios from 'axios';
Vue.prototype.$axios = axios;
import QS from 'qs'
Vue.prototype.qs = QS;

封裝好的axios,拿走不送:(最好是在main.js同級目錄創建一個 https.js 文件,復制粘貼下面代碼,改 接口地址 就可以用)


import axios from 'axios'
import qs from 'qs'axios.defaults.timeout = 5000;                        //響應時間
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';        //配置請求頭
axios.defaults.baseURL = '';   //配置接口地址//POST傳參序列化(添加請求攔截器)
axios.interceptors.request.use((config) => {//在發送請求之前做某件事if(config.method  === 'post'){config.data = qs.stringify(config.data);}return config;
},(error) =>{console.log('錯誤的傳參')return Promise.reject(error);
});//返回狀態判斷(添加響應攔截器)
axios.interceptors.response.use((res) =>{//對響應數據做些事if(!res.data.success){return Promise.resolve(res);}return res;
}, (error) => {console.log('網絡異常')return Promise.reject(error);
});//返回一個Promise(發送post請求)
export function fetchPost(url, params) {return new Promise((resolve, reject) => {axios.post(url, params).then(response => {resolve(response);}, err => {reject(err);}).catch((error) => {reject(error)})})
}
返回一個Promise(發送get請求)
export function fetchGet(url, param) {return new Promise((resolve, reject) => {axios.get(url, {params: param}).then(response => {resolve(response)}, err => {reject(err)}).catch((error) => {reject(error)})})
}
export default {fetchPost,fetchGet,
}

開發環境一般要跨域,解決跨域問題(設置代理):vue-cli 3.0的在 package.json 同級目錄新建一個 vue.config.js 文件,加入下面代碼,其他版本找到配置文件的devServer加入代碼


module.exports = {//axios域代理,解決axios跨域問題baseUrl: '/',devServer: {proxy: {'': {target: 'http://192.168.0.108:8090',changeOrigin: true,ws: true,pathRewrite: {}}}}
}

修改完后記得重啟項目應用配置
然后就到收獲的時候了,在要請求的vue模塊中導入并使用:


import https from '../https.js'   // 注意用自己的路徑// 請求后臺數據==================loginPost: function () {let params ={'username': 'admin', 'password': 'admin123', 'rememberMe': 'true','isMobile':'1'}https.fetchPost('/login',params ).then((data) => {this.base.token = data.data.token    // console.log("this.base.tokenthis.base.token",this.base.token)this.indexPost2(this.rres)}).catch(err=>{console.log(err)})},indexPost2:function (date) {var this_ = thisthis_.check = falsevar jobj ={data:{'menuDate': date,'token':this.base.token}}let string  = JSON.stringify(jobj)let params = {dailyInfo:string}https.fetchPost('/meals/mobile/getDailyMenuByDate', params).then((data) => {this_.base.indexData = datathis_.check = true// console.log('thenthenthenthen',data)}).catch((err)=>{console.log(err)})},// ================================================},

文字不是很多,但重要的都在這,看代碼的注釋就行了

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249830.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249830.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249830.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java 類型轉換String,List,Map,Array

1. JsonString轉為Map String jsoNStr "{\n" "\t\"TestArray\": [\"1\", \"2\", \"3\"]\n" "}";Map map JSON.parseObject(jsoNStr,Map.class);2.Object轉為JsonArray(得保證obj是個Array數組&#x…

關于固件

固件(Firmware)就是寫入EROM或EPROM(可編程只讀存儲器)中的程序,通俗的理解就是“固化的軟件”,臺港澳稱為“韌體”。更簡單的說,固件就是BIOS的軟件,但又與普通軟件完全不同,它是固化在集成電路內部的程序代碼&#x…

React-Native 指定模擬器RUN-IOS

react-native run-ios --simulator "iPhone 7” 轉載于:https://www.cnblogs.com/smzd/p/10185263.html

vue和element-ui使用

上一篇已經創建好一個vue項目。https://mp.csdn.net/postedit/80926242 這一篇主要是創建一個vue項目并結合餓了么框架element-ui。 1.先創建vue項目,我準備把項目放在e盤下:E:\Work\RegisterProject; 命令行進入這個目錄: 創…

javaweb學習6——自定義標簽

聲明:本文只是自學過程中,記錄自己不會的知識點的摘要,如果想詳細學習JavaWeb,請到孤傲蒼狼博客學習,JavaWeb學習點此跳轉 本文鏈接:https://www.cnblogs.com/xdp-gacl/p/3916946.html https://www.cnblogs…

goland 實用鍵

代碼補全 option command v轉載于:https://www.cnblogs.com/smzd/p/10313417.html

關于Mysql java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)的問題...

問題所在: 1.連接數據庫一個是密碼是否正確, 2.driver是否對, 3.有么有jar包沖突,轉載于:https://www.cnblogs.com/java-123/p/9403412.html

vscode配置vue環境

一、安裝VSCode、NodeJS VSCode:https://code.visualstudio.com/ NodeJS:https://nodejs.org/en/ 二、打開VSCode,安裝常用插件 如圖所示(安裝后重新加載即可): 三、項目中添加.vscode文件夾,文件夾中添…

秒殺核心設計(減庫存部分)-防超賣與高并發

商品詳情頁面的靜態化,varnish加速,秒殺商品庫獨立部署服務器這種就略過不講了。只討論庫存部分的優化 mysql配置層面的優化可以參考我的這篇文章 《關于mysql innodb引擎性能優化的一點心得》 重點設計在數據庫層面。 2張表: 第一張&#xf…

go strconv

strconv是golang用來做數據類型轉換的一個庫。 介紹下strconv最常用的兩個方法, 沒有解釋語言那么自在可以str(int),int(string), 那還算簡練。 num, err : strconv.Atoi("-42") str : strconv.Itoa(-42)轉換換成bool類型. b, err : strconv.ParseBool("true&qu…

django配置templates、static、media和連接mysql數據庫

1.模板文件 # templates配置 if os.path.exists(os.path.join(BASE_DIR, templates)) is False:os.mkdir(os.path.join(BASE_DIR, templates)) TEMPLATES [{# 模板引擎,內置的模板引擎有:# 1. django.template.backends.django.DjangoTemplates# 2. dj…

vue調用順序(初學版) index.html → main.js → app.vue → index.js → components/組件 測試

關于它是怎么調用運作的:https://mp.csdn.net/postedit/86134414 一. 準備工作: 1.下載webstorm,安裝vue。 2.創建項目,cd到要放項目的文件夾下 vue init webpack vue_test 3.安裝各種包 npm install 4.運行 cd vue_test …

web開發:jquery之DOM

一、文檔結構 二、文檔操作 三、文檔操作案例 四、form表單 五、正則 六、form案例 一、文檔結構 jsvar $sup $(.sup);console.log($sup.children()); // 子們console.log($sup.parent()); // 父console.log($sup.prev()); // 上兄弟console.log($sup.next()); // 下兄弟c…

NO.8:自學python之路------并行socket網絡編程

摘要 一到放假就雜事很多,這次的作業比較復雜,做了一個周,進度又拖了。不過結果還不錯。 正文 粘包 在上一節中,如果連續發送過多數據,就可能發生粘包。粘包就是兩次發送的數據粘在一起被接收,損壞了數據的…

vue項目中主要文件的加載順序(index.html、App.vue、main.js)

先后順序: index.html > App.vue的export外的js代碼 > main.js > App.vue的export里面的js代碼 > Index.vue的export外的js代碼 測試的頁面代碼塊: 文件的加載先后順序: Index.vue的mounted()中的輸出沒有執行。why&#…

Http請求報頭設置(C#)

1、添加一個SetHeaderValue方法: public static void SetHeaderValue(WebHeaderCollection header, string name, string value) { var property typeof(WebHeaderCollection).GetProperty("InnerCollection",BindingFlags.Instance | BindingFlags.NonP…

vue-cli3使用cdn引入

1. index.html引入&#xff1a; <script src"https://cdn.bootcss.com/moment.js/2.20.1/moment.min.js"></script> <script src"https://cdn.bootcss.com/moment.js/2.20.1/locale/zh-cn.js"></script>2. vue.config.js配置&…

vue常用屬性

Vue實例常用屬性 1.數據 data:Vue 實例的數據對象 components&#xff1a;Vue實例配置局部注冊組件 1.類方法 computed:計算屬性 watch&#xff1a;偵聽屬性 filters&#xff1a;過濾器 methods:Vue實例方法 render&#xff1a;渲染函數&#xff0c;創建虛擬DOM 1.生命周期 c…

凸包算法

轉載自&#xff1a;https://blog.csdn.net/bone_ace/article/details/46239187 凸包問題的五種解法 2015年05月29日 17:58:51 閱讀數&#xff1a;33660前言&#xff1a; 首先&#xff0c;什么是凸包&#xff1f; 假設平面上有p0~p12共13個點&#xff0c;過某些點作一個多邊形&a…

一個優雅的占位圖解決方案。適用于 UITableView 和 UICollectionView。

FMListPlaceholder 項目地址&#xff1a;https://github.com/yfming93/FMListPlaceholder 一個優雅的占位圖解決方案。適用于 UITableView 和 UICollectionView。 一行代碼處理空列表占位圖邏輯 0x001 與其他的同類三方庫對比的優點&#xff1a; 首次進入列表占位圖是不顯示的。…