网络请求(ajax,axios)

json
    是一种数据格式,以字典的形式展现出来,但是其中必须是双引号
    数据格式
        数据的一种组装形式
        
  同源
    同协议
    同域名
    同端口        

  $.ajax() 中同时封装了ajax(不跨域)和jsonp(跨域)请求数据的方式,默认传递数据json格式的

  ajax
    # 必须在入口函数中执行
    ajax二种书写方式
        第一种
            ajax中的字段

                $.ajax({
                    url:"/index_data",  //支持同源协议
                    type:"get",         //请求方式
                    dataType:"json",    //数据返回的类型
                    data:{code:codes},  // 需要传递的参数
                    contentType:"application/json",
                    success:function(args)
                    {
                        //请求成功之后执行
                        console.log(args)
                    },
                    error:function()
                    {
                        //请求失败,指的的下面某个环节出现了问题,需要重新确认一下
                        alert("请求超时,请刷新界面")
                    },  
                    async:"true"   // 默认是异步传输  
                })

 


                
        第二种
         

        $.ajax({
                url:"/index_data",
                type:"get",
                dataType:"json",
                data:{code:codes},  // 需要传递的参数
                .done(function(){
                    // 请求成功之后执行
                    alert("OK")    
                }),
                .fail(function(){
                    // 请求失败
                    alert("NG")
                })
                async:"true"   // 默认是异步传输
            })

 



jsonp      跨域请求数据(指有可能访问别人的服务器)    
   是一种协议  p -> Protocol
     原理
        通过<script src="http://www.baidu.com"></script>中的src来发起请求
        

        $.ajax({
            url:"https://www.so.com",
            type:"get",
            dataType:"jsonp",
            data:{code:codes},  // 传递过程中需要传递的参数
            .done(function(){
                alert("OK")
            })
            .fail(function(){
                alert("NG")
            })
            async:"true"   // 默认是异步传输
        })

 


        
axios请求
  axios 是一个基于Promise 用于浏览器和nodejs的HTTP客户端,它本身具有以下特征:
      1)从浏览器中创建 XMLHttpRequest
      2)从node.js发出http请求
      3)支持PromiseAPI
      4)拦截请求和响应
      5)转换请求和响应数据
      6)取消请求
      7)自动转换JSON数据
      8)客户端支持防止 CSRF/XSRF
  两种方式如下:

    funcAdd:function(args){
        console.log(args)
        // 访问服务器的url
        // 连接处没有 ","
        axios({  
            url:'/add_data',
            method:'get',
            dataType:'text',    // 发送的数据格式
            params:{"code":args},   // 传参关键字必须是params
            responseType: json        // 返回响应的数据格式
        })
        .then(function(ret){
            //请求成功后执行的代码块
            alert(ret.data)
        })
        .catch(function(){
            alert("请求失败")
        })
    }        

 


    
    // 这是一种含有箭头函数的axios的请求方式

    axios.get(this.host + '/usernames/' + this.username + '/count/', {
        responseType: 'json'
                    })
        .then(response => {
            if (response.data.count > 0) {
                this.error_name_message = '用户名已存在';
                this.error_name = true;
            } else {
                 this.error_name = false;
             }
                    })
                    .catch(error => {
                        console.log(error.response.data);
                    })        

 

posted @ 2020-08-14 12:11  inhocho  阅读(21)  评论(0)    收藏  举报