axios请求和vue-resource

1.axios的get请求

    1.1  先引入Vue 和 axios 的文件

1   <script src="./js/vue2.js"></script>
2   <!-- 引入axios -->
3   <script src="./js/axios.js"></script>

    1.2 这里的实例中 是在 mounted 钩子函数中发送的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>axios</title>
 8   <!-- 引入Vue文件 -->
 9   <script src="./js/vue2.js"></script>
10   <!-- 引入axios -->
11   <script src="./js/axios.js"></script>
12 </head>
13 <body>
14   <div id="app"></div>
15 
16   <script>
17     var vm = new Vue({
18       el: '#app',
19       data: {
20 
21       },
22       mounted() {  //这里使用mounted 钩子函数 是在页面加载的时候就发送get请求
23         axios.get('请求的接口').then(res => {  //.then是数据请求成功之后的回调函数
24           console.log(res);      //res是返回的数据
25           console.log(res.data)  //axios中我们真正需要的数据在data中
26         }).catch(error => {      //.catch是请求失败的回调函数
27           console.log(error)
28         })
29       }
30     })
31   </script>
32 </body>
33 </html>

1.3 github 上的案例是这么写的,上述案例中用的是ES6的箭头函数

axios.get('/user?ID=12345')     //接口
  .then(function (response) { //成功的回调 console.log(response); }) .catch(function (error) { //失败的回调 console.log(error); }) // 也可以用以下的写法: axios.get('/user', { params: { ID: 12345 } }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }) 

2. axios 的 post 请求

 2.1  同get请求一样 先引入文件

 2.2  实例代码 注意:在GitHub中 post请求的接口中 参数拼接与get不同  没有parans字样。  我自己的代码示例:

 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>axios</title>
 8   <!-- 引入Vue文件 -->
 9   <script src="./js/vue2.js"></script>
10   <!-- 引入axios -->
11   <script src="./js/axios.js"></script>
12 </head>
13 <body>
14   <div id="app"></div>
15   <script>
16     var vm = new Vue({
17       el: '#app',
18       data: {
19 
20       },
21       mounted() {  //这里使用mounted 钩子函数 是在页面加载的时候就发送get请求
22         axios.post('接口地址', {   //通过对象传参
23           name: 'hahaha'
24         }).then(res =>{
25           console.log(res.data)
26         }).catch(error => {
27           console.log(error)
28         })
29       }
30     })
31   </script>
32 </body>
33 </html>

2.3  GitHub 上的示例

 1 axios.post('/user', {
 2     firstName: 'Fred',
 3     lastName: 'Flintstone'
 4   })
 5   .then(function (response) {
 6     console.log(response);
 7   })
 8   .catch(function (error) {
 9     console.log(error);
10   });

3. vue-resource  (不推荐使用)

   由于axios 不支持 jsonp 这种跨域请求的方式  所以之前一直再用 vue-resource ,但是由于官方停止维护了 ,并且推荐我们使用axios

 3.1  jsonp 跨域的原理 :  简单的一句话总结 就是动态的创建了一个 script 标签 通过src 请求

                    

3.2   示例代码

 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>axios</title>
 8   <!-- 引入Vue文件 -->
 9   <script src="./js/vue2.js"></script>
10   <!-- 引入axios -->
11   <script src="./js/axios.js"></script>
12 </head>
13 <body>
14   <div id="app"></div>
15   <script>
16     var vm = new Vue({
17       el: '#app',
18       data: {
19 
20       },
21       mounted() {  //这里使用mounted 钩子函数 是在页面加载的时候就发送get请求
22          //他会在Vue的 prototype 上绑定一个$http对象
23         this.$http.jsonp('数据接口').then(res => {
24           console.log(res.body);  // 他的数据存放在body属性中
25         }), error => {
26           console.log(error)
27         }
28       }
29     })
30   </script>
31 </body>
32 </html>

猜你喜欢

转载自www.cnblogs.com/lirun-rainbow/p/10356046.html