Vue--axiosï¼vueä¸çajax弿¥è¯·æ±ï¼åéåè¯·æ±æ°æ®ï¼ãvue-resource弿¥è¯·æ±åè·¨å
è·¨ååç:
ä¸.使ç¨axiosåéget请æ±
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <title>Document</title> 8 <script src="../vue2.4.4.js"></script> 9 <script src="../axios.js"></script> 10 11 </head> 12 13 <body> 14 <!-- å®ä¹ä¸ä¸ªvueç管çåºåï¼ï¼MVVMä¸çViewï¼ --> 15 <div id="app"> 16 <button @click="getApiData">ç¹å»å¾å°æ°æ®</button> 17 {{name}} 18 </div> 19 20 </body> 21 22 <script> 23 24 // å®ä¾åvue对象ï¼MVVMä¸çView Modelï¼ 25 new Vue({ 26 // vmæ§å¶çåºå为id为appçdivï¼æ¤divä¸çæævueæä»¤åå¯ä»¥è¢«vmè§£æ 27 el:'#app', 28 data:{ 29 // æ°æ® ï¼MVVMä¸çModelï¼ 30 name:"" 31 }, 32 methods:{ 33 getApiData:function() { 34 //设置请æ±è·¯å¾ 35 var url = "http://157.122.54.189:9093/api/getprodlist"; 36 // åé请æ±:å°æ°æ®è¿åå°ä¸ä¸ªåå°å½æ°ä¸ 37 _this= this; 38 // å¹¶ä¸ååºæå以å伿§è¡thenæ¹æ³ä¸çåè°å½æ° 39 axios.get(url).then(function(result) { 40 // resultæ¯ææçè¿ååæ¥çæ°æ® 41 // å æ¬äºååºæ¥æè¡ 42 // ååºæ¥æå¤´ 43 // ååºæ¥æä½ 44 console.log(result.data.message[0]); 45 _this.name = result.data.message[0].name; 46 }); 47 } 48 } 49 }) 50 </script> 51 </html>
äº.使ç¨axiosåépost请æ±
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <title>Document</title> 8 <script src="../vue2.4.4.js"></script> 9 <script src="../axios.js"></script> 10 11 </head> 12 13 <body> 14 <!-- å®ä¹ä¸ä¸ªvueç管çåºåï¼ï¼MVVMä¸çViewï¼ --> 15 <div id="app"> 16 <button @click="postApiData">ç¹å»æäº¤æ°æ®</button> 17 </div> 18 19 </body> 20 21 <script> 22 23 // å®ä¾åvue对象ï¼MVVMä¸çView Modelï¼ 24 new Vue({ 25 // vmæ§å¶çåºå为id为appçdivï¼æ¤divä¸çæævueæä»¤åå¯ä»¥è¢«vmè§£æ 26 el:'#app', 27 data:{ 28 // æ°æ® ï¼MVVMä¸çModelï¼ 29 }, 30 methods:{ 31 postApiData:function() { 32 var url = "http://157.122.54.189:9093/api/addproduct"; 33 // postæä¸¤ä¸ªåæ° 34 //åæ°1:请æ±çè·¯å¾ 35 //åæ°2:æäº¤çåæ° 36 //æäº¤åæ°ç两ç§å½¢æ: 37 // 1.å¯ä»¥ç´æ¥ä¼ å ¥å符串 name=å¼ ä¸&age=19 38 // 2.å¯ä»¥ä»¥å¯¹è±¡çå½¢å¼ä¼ å ¥{name:"ä¸",age:19} 39 axios.post(url,{name:"ææ²¹ç¶åæ¥æ¥é"}).then(function(res) { 40 var resData = res.data; 41 if(resData.status == "0") { //0表示æåï¼1表示失败 42 alert(resData.message); 43 }else{ 44 alert(resData.message); 45 } 46 }); 47 48 } 49 } 50 }) 51 </script> 52 </html>
ä¸.使ç¨axiosåépostæget请æ±ç»èå¤ç
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <title>Document</title> 8 <script src="../vue2.4.4.js"></script> 9 <script src="../axios.js"></script> 10 11 </head> 12 13 <body> 14 <!-- å®ä¹ä¸ä¸ªvueç管çåºåï¼ï¼MVVMä¸çViewï¼ --> 15 <div id="app"> 16 <button @click="getApiData">ç¹å»å¾å°æ°æ®</button> 17 <button @click="postApiData">ç¹å»æäº¤æ°æ®</button> 18 {{name}} 19 20 </div> 21 22 </body> 23 24 <script> 25 //ç»èå¤çä¸ï¼å¯ä»¥ç»axiosçajax请æ±è®¾ç½®ç»ä¸ç主æºå端å£å· 26 axios.defaults.baseURL = "http://157.122.54.189:9093/"; 27 //ç»èå¤çäº: å¯ä»¥å°axiosè¿ä¸ªå¯¹è±¡æ·»å å°Vueçåå对象ä¸ï¼å°æ¥å¨ä½¿ç¨çæ¶åå°±åªéè¦ä½¿ç¨this.对象åå°±å¯ä»¥äº 28 Vue.prototype.$http = axios; 29 30 31 // å®ä¾åvue对象ï¼MVVMä¸çView Modelï¼ 32 new Vue({ 33 // vmæ§å¶çåºå为id为appçdivï¼æ¤divä¸çæævueæä»¤åå¯ä»¥è¢«vmè§£æ 34 el:'#app', 35 data:{ 36 // æ°æ® ï¼MVVMä¸çModelï¼ 37 name:"" 38 }, 39 methods:{ 40 getApiData:function() { 41 //设置请æ±è·¯å¾ 42 var url = "api/getprodlist"; 43 // åé请æ±:å°æ°æ®è¿åå°ä¸ä¸ªåå°å½æ°ä¸ 44 _this= this; 45 // å¹¶ä¸ååºæå以å伿§è¡thenæ¹æ³ä¸çåè°å½æ° 46 this.$http.get(url).then(function(result) { 47 // resultæ¯ææçè¿ååæ¥çæ°æ® 48 // å æ¬äºååºæ¥æè¡ 49 // ååºæ¥æå¤´ 50 // ååºæ¥æä½ 51 _this.name = result.data.message[0].name; 52 }).catch(function(){ 53 alert("åºéäº"); 54 }); 55 }, 56 57 postApiData:function() { 58 var url = "api/addproduct"; 59 // postæä¸¤ä¸ªåæ° 60 //åæ°1:请æ±çè·¯å¾ 61 //åæ°2:æäº¤çåæ° 62 //æäº¤åæ°ç两ç§å½¢æ: 63 // 1.å¯ä»¥ç´æ¥ä¼ å ¥å符串 name=å¼ ä¸&age=19 64 // 2.å¯ä»¥ä»¥å¯¹è±¡çå½¢å¼ä¼ å ¥{name:"ä¸",age:19} 65 this.$http.post(url,{name:"ææ²¹ç¶åæ¥æ¥é3 "}).then(function(res) { 66 var resData = res.data; 67 if(resData.status == "0") { //0表示æåï¼1表示失败 68 alert(resData.message); 69 }else{ 70 alert(resData.message); 71 } 72 }).catch(function(){ 73 alert("åºéäº"); 74 }); ; 75 76 } 77 } 78 }) 79 </script> 80 </html>
å.使ç¨axios宿åç管ç
1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 8 <title>Document</title> 9 <style> 10 #app { 11 width: 600px; 12 margin: 10px auto; 13 } 14 15 .tb { 16 border-collapse: collapse; 17 width: 100%; 18 } 19 20 .tb th { 21 background-color: #0094ff; 22 color: white; 23 } 24 25 .tb td, 26 .tb th { 27 padding: 5px; 28 border: 1px solid black; 29 text-align: center; 30 } 31 32 .add { 33 padding: 5px; 34 border: 1px solid black; 35 margin-bottom: 10px; 36 } 37 </style> 38 <script src="../vue2.4.4.js"></script> 39 <script src="../axios.js"></script> 40 </head> 41 42 <body> 43 <div id="app"> 44 <div class="add"> 45 åçåç§°: <input v-model="name" type="text"> 46 <button @click="add">æ·»å </button> 47 </div> 48 <div class="add">åçåç§°ï¼<input type="text"></div> 49 <div> 50 <table class="tb"> 51 <tr> 52 <th>ç¼å·</th> 53 <th>åçåç§°</th> 54 <th>åç«æ¶é´</th> 55 <th>æä½</th> 56 </tr> 57 <tr v-if="list.length <= 0"> 58 <td colspan="4">没æåçæ°æ®</td> 59 </tr> 60 <!--å å ¥: key="index" æ¶åå¿ é¡»æææåæ°å宿´ --> 61 <tr v-for="(item,key,index) in list" :key="index"> 62 <td>{{item.id}}</td> 63 <td>{{item.name}}</td> 64 <td>{{item.ctime}}</td> 65 <td><a href="#" @click="del(item.id)">å é¤</a></td> 66 </tr> 67 </table> 68 </div> 69 70 </div> 71 </body> 72 73 </html> 74 75 <script> 76 // 1 å°ææç主æºååç«¯å£ ä¸èµ·è®¾ç½® 77 axios.defaults.baseURL = "http://157.122.54.189:9093"; 78 // 2 å°axiosæ·»å å°Vueçååå¯¹è±¡ä¸ 79 Vue.prototype.$http = axios; 80 81 var vm = new Vue({ 82 el: "#app", 83 data: { 84 name: '', 85 list: [] // æ°æ®åºè¯¥æ¥æºäºæå¡å¨æä¾çapi 86 }, 87 mounted:function() { //é©å彿° 88 this.getList(); 89 }, 90 methods: { 91 // å¾å°ææçåè¡¨æ°æ®,è¿ä¸ªæ¹æ³åºè¯¥ç页é¢å è½½å®æä»¥åç´æ¥è¢«è°ç¨ç 92 getList:function() { 93 var url = "/api/getprodlist"; 94 // æ¹åthisçæå 95 _this = this; 96 this.$http.get(url).then(function(result){ 97 var res = result.data; 98 if(res.status == 0) { 99 //å°æ°æ®èµå¼ç»list 100 _this.list = res.message; 101 }else{ 102 alert("åºéäº"); 103 } 104 }).catch(function(){ 105 alert("åºéäº"); 106 }); 107 }, 108 // å¾å°ææ¬æ¡ä¸çå¼ï¼å¹¶ä¸å°å¼éè¿apiæäº¤å°æå¡å¨ 109 add:function() { 110 var url = "/api/addproduct"; 111 _this = this; 112 // å¾å°name屿§å¯¹åºçå¼ 113 this.$http.post(url,{"name":this.name}).then(function(result){ 114 var res = result.data; 115 if(res.status == "0") { 116 alert(res.message); 117 _this.getList(); 118 }else{ 119 alert(res.message); 120 } 121 }).catch(function() { 122 alert("åºéäº"); 123 }); 124 }, 125 del:function(id){ 126 //æ ¼å±idå 餿°æ® 127 var url = "/api/delproduct/"+id; 128 // åé弿¥è¯·æ± 129 _this = this; 130 this.$http.get(url).then(function(result){ 131 var res = result.data; 132 if(res.status == "0") { 133 alert(res.message); 134 //æ´æ°æ°æ® 135 _this.getList(); 136 }else{ 137 alert(res.message); 138 } 139 140 }).catch(function(){ 141 alert("åºéäº"); 142 }); 143 } 144 } 145 }); 146 147 </script>
äº.使ç¨vue-resourceåé弿¥è¯·æ±(å å«getåpost请æ±)
两个jsæä»¶ä¸å®è¦æç §é¡ºåºå è½½
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <title>Document</title> 8 <script src="../vue2.4.4.js"></script> 9 <script src="../vue-resource.js"></script> 10 11 </head> 12 13 <body> 14 <!-- å®ä¹ä¸ä¸ªvueç管çåºåï¼ï¼MVVMä¸çViewï¼ --> 15 <div id="app"> 16 {{name}} 17 </div> 18 19 </body> 20 21 <script> 22 23 // å®ä¾åvue对象ï¼MVVMä¸çView Modelï¼ 24 new Vue({ 25 // vmæ§å¶çåºå为id为appçdivï¼æ¤divä¸çæævueæä»¤åå¯ä»¥è¢«vmè§£æ 26 el:'#app', 27 data:{ 28 // æ°æ® ï¼MVVMä¸çModelï¼ 29 name:"" 30 }, 31 methods:{ 32 33 }, 34 created:function() { 35 // åé请æ±å°æå¡å¨å è½½æ°æ® 36 //vue-resourceåégetè¯·æ± 37 /* this.$http.get("http://157.122.54.189:9093/api/getprodlist").then(function(result){ 38 //å¾å°ååºçå 容 39 var res = result.body; 40 this.name = res.message[0].name; 41 }); 42 */ 43 //vue-resourceåépostè¯·æ± 44 this.$http.post("http://157.122.54.189:9093/api/addproduct",{"name":"å°æ"}).then(function(result){ 45 var res = result.body; 46 alert(res.message); 47 }); 48 } 49 }) 50 </script> 51 </html>
å .使ç¨vue-resourceæ¥å®ç°è·¨å
ã
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <title>Document</title> 8 9 <script src="../vue2.4.4.js"></script> 10 <script src="../vue-resource.js"></script> 11 </head> 12 13 <body> 14 <!-- å®ä¹ä¸ä¸ªvueç管çåºåï¼ï¼MVVMä¸çViewï¼ --> 15 <div id="app"> 16 17 </div> 18 19 </body> 20 21 <script> 22 23 // å®ä¾åvue对象ï¼MVVMä¸çView Modelï¼ 24 new Vue({ 25 // vmæ§å¶çåºå为id为appçdivï¼æ¤divä¸çæævueæä»¤åå¯ä»¥è¢«vmè§£æ 26 el:'#app', 27 data:{ 28 // æ°æ® ï¼MVVMä¸çModelï¼ 29 }, 30 mounted:function() { 31 var url = "http://157.122.54.189:9093/jsonp"; 32 //å¨vue-resourcesä¸ä¼èªå¨å¨è·¯å¾ä¸å å ¥callbackç彿°åï¼å¾å°çç»æå°±æ¯result 33 this.$http.jsonp(url).then(function(result){ 34 var res = JSON.parse(JSON.parse(result.body)); 35 console.log(res.message); 36 }); 37 } 38 }) 39 </script> 40 </html>