• Vue之axios请求


    一、简述

      1、vue.js默认没有ajax功能。

      2、取而代之的即axios来实现与后端服务器的数据交互。

      3、axios本质上就是ajax,所以会被同源策略所限制。

    二、axios的请求方式

      1、axios.get:向服务器请求获取数据。

      2、axios.delete:向服务器请求删除数据,格式和参数与get一致。

      3、axios.put:向服务器请求更新整行数据。

      4、axios.patch:向服务器请求更新某个字段数据,格式与参数与put一致。

      5、axios.post:向服务器请求上传数据。

      6、其中axios.get与axios.post为常用方法。

      7、实例,以axios.get为例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="vue.min.js"></script>
        <script src="axios.js"></script>
    </head>
    <body>
    <div id="id_1">
        <div>{{r_data}}</div>
    </div>
    <!------------------------------------------------------------>
    <script>
        let vueObj = new Vue({
            el: '#id_1',
            data: {
                r_data: null
            },
            beforeMount: function () {
                // get里面的第一个参数为数据接口的url
                // get里面的第二个参数可不填或选填多个,如请求参数,请求头内容,json对象等,是用来提交给数据接口的参数
                axios.get('http://wthrcdn.etouch.cn/weather_mini',
                    {
                        params: {
                            city: '南京'  // 相当于在url后面写 ?city=南京
                        },
                        headers: {}  // 书写选项名和选项值的键值对
                    }
                ).then(  // 定制请求成功以后的回调函数
                    response => {
                        this.r_data = response.data
                    }
                ).catch(  // 定制请求失败以后的回调函数
                    error => {
                        console.log(error)
                    }
                )
            }
        })
    </script>
    </body>
    </html>
    View Code

     三、json

      1、简述:json是JavaScript Object Notation的首字母缩写,单词的意思是javascript对象表示法,也就是说json指的是类似于javascript对象的一种数据格式。

      2、作用:用于不同系统平台或不同编程语言之间传递数据。

      3、特征:

        ①在js中,json对象格式化之后就是json数据,json数据反序列化之后即json对象。

        ②json数据可以保存在.json后缀的文件中,一般一个文件只有一个json数据。

        ③json数据的属性不能是方法或者undefined,只能是,数值(整数,小数,布尔值) / 字符串 / 数组 以及 json数据,而原生的json对象可以包含方法和undefined。

        ④json数据内需要使用引号的部分必须都说是双引号,每个属性成员之间以逗号隔开,最后一个成员后面一定不能加逗号。

      4、json对象与json数据之间的转换:

        ①JSON.stringify(json对象) ===> json数据。

        ②JSON.parse(json数据) ===> json对象。

    四、ajax

      1、简述:ajax,一般中文称之为:"阿贾克斯",是英文 “Async Javascript And Xml”的简写,译作:异步js和xml数据传输数据。

      2、作用:ajax可以让js代替浏览器向后端程序发送http请求,与后端通信,在用户不知道的情况下操作数据和信息,从而实现页面局部刷新数据或者无刷新更新数据,所以ajax在web开发中是十分常用的技术,主要用于操作后端提供的数据接口,从而实现网站的前后端分离。

      3、本质:ajax的原理就是通过实例化XMLHttpRequest对象,再用该对象内置的方法实现与后端的数据通信,所以无论是ajax还是axios,本质上都是对XMLHttpRequest对象操作的封装。

    五、数据接口

      1、简述:也叫api接口,即服务端将数据操作的功能提供给客户端使用的url。

      2、流程:客户端通过向服务端提供的url发起请求来申请操作数据,实际工作中,大部分数据接口无需手写,可以通过框架生成。

    六、同源策略

      1、简述:同源策略是浏览器为了保护用户信息安全的一种安全机制。

      2、原理:所谓的同源就是指,把通信的两个地址(如,服务端接口地址与客户端浏览器页面地址)之间进行比较,协议、域名(IP)和端口是否相同。不同源的客户端js在没有得到服务端的明确授权的情况下,浏览器会拦截服务端提供给客户端的响应。

      3、ajax和axios本质上都是js,所以都会受到同源策略的影响。

      4、同源策略拦截的关键字:Access-Control-Allow-Origin,一般如果请求后反馈这种异常,就是访问受限,被同源策略所拦截了。

    七、跨域方案之CORS

      1、简述:CORS是一个W3C标准,全称是"跨域资源共享",它允许浏览器向跨源的后端服务器发出ajax请求,从而克服了ajax只能同源使用的限制,主要是依靠后端服务器在响应的数据中设置响应头再返回来实现的,所以CORS也可以称为服务端授权。

      2、其他跨域策略:jsonp和服务端代理。

        ①jsonp:核心是依靠script本身加载外部js文件来实现的,要想实现jsonp,同时也需要服务端的配合。

        ②服务端代理:越过浏览器,通过自己的服务端来请求目标服务端接口,因为自己的客户端与服务端处于同源,再直接请求数据即可。

      3、定向授权与开放授权,在响应行信息内设置如下内容,Access-Control-Allow-Origin: ajax所在的域名地址。

        ①若域名地址为指定的地址,那表示只允许该地址客户端的ajax跨域访问。

        ②若域名地址为*,则表示任意源的客户端ajax都可以跨域访问。

  • 相关阅读:
    结构体struct和typedef后面接指针的含义
    C++中关于指针初始化和使用NULL的理解
    (虚)继承类的内存占用大小
    为什么构造函数不能为虚函数
    C++中变量自动初始化的问题
    CY7C68013A的一点总结
    Altium designer总结
    在Linux系统上限制远程登录的IP
    linux系统如何限制其他用户登录
    使用秘钥对登录Linux系统
  • 原文地址:https://www.cnblogs.com/caoyu080202201/p/13174078.html
Copyright © 2020-2023  润新知