zoukankan      html  css  js  c++  java
  • Vue -ajax

    vue发送ajax请求需要使用第三方包如vue-resource、xaios

    vue-resource是和vue高度集成的第三方包,依赖vue,所以导包时要先导vue

    vm实例创建后会挂载到window上,而vue-resource导包后会在vm上挂载$http属性,通过this.$http就能进行ajax请求

    发送get请求

    <head>
        <script src="lib/vue.js"></script>
        <script src="lib/vue-resource.min.js"></script>
    </head>
    <body>
    <div id="app">
        <input type="button" value="get请求" @click="getInfo">
    </div>
    <script>
        var vm = new Vue({
            el: '#app',
            methods: {
                getInfo() {
                    //a.txt为当前目录下的一个纯文本
                    this.$http.get('./a.txt').then(function (result) {
                        console.log(result)
                    })
                }
            }
        })
    </script>
    </body>    

    由于是使用Promise来封装,所以使用then来获取结果,result是一个对象,响应数据封装在此对象的body中

    发送post请求

    //参数一为url地址,参数二为要发送给服务器的数据对象,参数三为配置对象
    this.$http.post('url',{},{}).then(function (result) {
        console.log(result)
    })
    手动发起的post请求默认没有表单格式,所以有的服务器处理不了
    此时可通过第三个参数设置提交的内容类型为普通表单数据类型格式{ emulateJSON:true }
    相关内容查看官方说明文档

     发送jsonp请求

    this.$http.jsonp('url地址').then(function (result) {
        console.log(result)
    })

    发送ajax应该尽早,最早可在Vue实例生命周期created阶段,因为此时Vue实例、data和methods都创建好了,就可以调用methods里的方法发起请求,这样当虚拟DOM创建的时候可能数据就响应回来,就可以一同挂载到页面上 ,这样并行地处理两件事,效率更高

  • 相关阅读:
    [转]优秀的程序员不会觉得累成狗是一种荣耀
    .NET读写Excel工具Spire.XlS使用(DataExport )
    WPF之Binding深入探讨
    第一个WPF应用程序
    Visio作图
    唯一的重复元素
    Strange Problem O(∩_∩)O~
    数据库知识点①
    HDU 2825 Wireless Password
    POJ 1625 Censored!
  • 原文地址:https://www.cnblogs.com/Grani/p/9633403.html
Copyright © 2011-2022 走看看