• Vue笔记(二):axios异步通信


    时间:2021/01/14

    一.axios库

    axios是Vue官方推荐的异步通信http库,与jQuery中ajax有相同的作用,可以用来请求后端接口中的数据。

    示例代码如下:

    data.json:

    1 {
    2     "name": "machi",
    3     "school": "bupt",
    4     "url": "https://www.cnblogs.com/machi12/"
    5 }

    axios.html:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     7     <title>Document</title>
     8 </head>
     9 <body>
    10 
    11     <div id="app">
    12         <p>{{info.name}}</p>
    13         <p>{{info.school}}</p>
    14         <a v-bind:href="info.url">点击我</a>
    15     </div>
    16     
    17     <script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script>
    18     <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    19 
    20     <script>
    21         var vm = new Vue({
    22             el: '#app',
    23        // 下面是data方法,用来从axios返回的响应中接收数据
    24             data(){
    25                 return{
    26                     info: {
    27                         name: null,
    28                         school: null,
    29                         url: null
    30                     }
    31                 }
    32             },
    33        // Vue提供的钩子函数
    34             mounted(){
    35                 axios.get("data.json").then(response => (this.info = response.data));
    36             }
    37         });
    38 
    39         
    40     </script>
    41 
    42 </body>
    43 </html>

    在上面的代码中,response.data就是data.json中的数据,通过Vue中data方法的返回值info来接收response.data中的数据,需要注意的是,info中格式要与data.json中的一致(可以只写需要的部分)。

    二.跨域请求问题

    在进行调试的时候,由于是通过file协议来进行访问的,所以出现了跨域请求错误,错误如下所示:

    Access to XMLHttpRequest at 'file:///Users/machi/Code/VueProject/Test-03-axios/data.json' from origin 'null' has been 
    blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome,
    chrome-extension, chrome-untrusted, https.

    解决的方法是在本地开启一个服务器,通过服务器来进行访问,如果使用vs code,推荐使用live server这款插件来进行调试,它可以在本地开启一个服务,可以很好的解决跨域请求问题。

  • 相关阅读:
    [dev][ipsec][esp] ipsec链路中断的感知问题
    [dev] Go语言查看doc与生成API doc
    [daily]gtk程序不跟随系统的dark主题
    [dev] Go的协程切换问题
    基因程序设计/基因编程/遗传编程
    [daily][emacs][go] 配置emacs go-mode的编辑环境以及环境变量问题
    Java Spring中@Query中使用JPQL LIKE 写法
    JavaScript 使用HTML DOM的oninput事件,实时监听value值变化
    Java中执行.exe文件
    Java关于List<String> 进行排序,重写Comparator()方法
  • 原文地址:https://www.cnblogs.com/machi12/p/15805020.html
Copyright © 2020-2023  润新知