美文网首页
Vue-(8) Ajax(vue-resource)

Vue-(8) Ajax(vue-resource)

作者: 物非0人非 | 来源:发表于2021-08-20 09:15 被阅读0次

    Vue 要实现异步加载需要使用到 vue-resource 库。
    Vue.js 2.0 版本推荐使用 axios 来完成 ajax 请求。

    <script src="https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js"></script>
    
    Get 请求

    以下是一个简单的 Get 请求实例,请求地址是一个简单的 txt 文本:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
    <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
    <script src="https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js"></script>
    </head>
    <body>
    <div id="box">
        <input type="button" @click="get()" value="点我异步获取数据(Get)">
    </div>
    <script type = "text/javascript">
    window.onload = function(){
    var vm = new Vue({
        el:'#box',
        data:{
            msg:'Hello World!',
        },
        methods:{
            get:function(){
                //发送get请求
                this.$http.get('/try/ajax/ajax_info.txt').then(function(res){
                    document.write(res.body);    
                },function(){
                    console.log('请求失败处理');
                });
            }
        }
    });
    }
    </script>
    </body>
    </html>
    

    点击之后:

    image.png

    如果需要传递数据,可以使用 this.$http.get('get.php',{params : jsonData})格式,第二个参数 jsonData 就是传到后端的数据。

    this.$http.get('get.php',{params : {a:1,b:2}}).then(function(res){
        document.write(res.body);    
    },function(res){
        console.log(res.status);
    });
    
    post 请求

    post 发送数据到后端,需要第三个参数 {emulateJSON:true}。
    emulateJSON 的作用: 如果Web服务器无法处理编码为 application/json 的请求,你可以启用 emulateJSON 选项。

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
    <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
    <script src="https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js"></script>
    </head>
    <body>
    <div id="box">
        <input type="button" @click="post()" value="点我异步获取数据(Post)">
    </div>
    <script type = "text/javascript">
    window.onload = function(){
        var vm = new Vue({
            el:'#box',
            data:{
                msg:'Hello World!',
            },
            methods:{
                post:function(){
                    //发送 post 请求
                    this.$http.post('/try/ajax/demo_test_post.php',{name:"菜鸟教程",url:"http://www.runoob.com"},{emulateJSON:true}).then(function(res){
                        document.write(res.body);    
                    },function(res){
                        console.log(res.status);
                    });
                }
            }
        });
    }
    </script>
    </body>
    </html>
    

    点击之后:

    image.png

    相关文章

      网友评论

          本文标题:Vue-(8) Ajax(vue-resource)

          本文链接:https://www.haomeiwen.com/subject/rmeibltx.html