美文网首页
vue-resource实现get、post、jsonp请求

vue-resource实现get、post、jsonp请求

作者: 小丘啦啦啦 | 来源:发表于2019-04-16 15:52 被阅读0次

一、vue-resource
原生异步调用写法太麻烦,而在vue不推荐用jquery,不推荐操作dom。
vue-resource是一个和Vue高度集成的第三方包。他能让我们很方便的去发送数据请求。
二、测试用URL请求资源地址

三、发起异步调用方式
CDN导入。注意:vue-resource需要依赖于Vue,所以Vue的包要先导。

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

它向Vue身上挂载了一个属性,后面可以 点.+方法。

this.$http
  • this.$http.get(url,[options])
  • this.$http.post(url,[body],[options])
  • this.$http.jsonp(url,[options])
  • 等等...

后面接.then(successCallback,[errorCallback]),来拿到和操作服务器返回的数据。(只要遇到.then(),就说明这个方法是通过Promise封装的)
四、设置请求默认值
请求地址前缀通常是公共的,都写死不利于后期维护。
vue-resource提供了使用全局配置设置默认值。

//设置网页api接口的根域名
Vue.http.options.root = '/root';
Vue.http.headers.common['Authorization'] = 'Basic YXBpOnBhc3N3b3Jk';

在Vue组件选项中设置默认值。

new Vue({

  http: {
    root: '/root',
    headers: {
      Authorization: 'Basic YXBpOnBhc3N3b3Jk'
    }
  }
})

注意:想要root属性(根路径)生效,请求的那个路径必须是相对路径,前面不能带"/"。
vue.http.get(“someurl”),而不是:vue.http.get(“/someurl”)。
五、实例

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <script src="https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js"></script>
    </head>
    <body>
        <div id="app">
            <input type="button" value="发送get请求" @click="getInfo"/>
            <input type="button" value="发送post请求" @click="postInfo"/>
            <input type="button" value="发送jsonp请求" @click="jsonpInfo"/>
        </div>

        <script>
            Vue.http.options.root = 'http://jsonplaceholder.typicode.com/';
            var vm = new Vue({
                el:'#app',
                data:{
                    
                },
                methods:{
                    getInfo(){   //发起get请求
                        this.$http.get('users').then(function(res){
                            console.log(res);
                            console.log(res.body);   //通过.body拿到服务器返回的数据
                        });
                    },
                    postInfo(){   //发起post请求
                        this.$http.post('users',{}).then(function(res){
                            console.log(res.body);  
                        });
                    },
                    jsonpInfo(){   //发起jsonp请求
                        this.$http.jsonp('users').then(res=>{
                            console.log(res.body);  
                        });
                    }
                }
            });
        </script>
    </body>
</html>

如果post请求是提交表单格式的,表单有个提交格式application/x-www-form-urlencode。
手动发起post请求没有表单格式,有些服务器处理不了,需要加opt参数,{emulateJSON:true}即可。
如果都是每次都需要传入参数很麻烦,可以全局启用。

Vue.http.options.emulateJSON = true;

相关文章

  • day02-vuejs-vue-resource实现get, p

    vue-resource实现get, post, jsonp]请求: JSONP的实现原理: 由于浏览器的安全性限...

  • 11,在Vue中发起ajax请求

    Vue-resource实现get,post,jsonp请求 Vue-resource是和Vue高度集成的第三方包...

  • vue-resource 实现get post jsonp请求

    除了vue-resource之外, 还可以用AXIOS的第三方包来实现 数据的请求 JSONP原理由于浏览器的限制...

  • vue-resource实现get、post、jsonp请求

    一、vue-resource原生异步调用写法太麻烦,而在vue不推荐用jquery,不推荐操作dom。vue-re...

  • 【JavaScript】ajax跨域发送POST

    跨域可以使用jsonp,实现跨域请求,但是这种方式只能发送GET请求,type设置为POST也会自动转为GET,因...

  • lesson35-JSONP

    为什么JSONP不支持POST请求? 因为JSONP是通过动态创建 实现的 动态创建 无法发起POST请求

  • 跨域

    ??JSONP只能解决GET请求跨域,不能解决POST请求跨域问题,XHR2可以解决GET,POST方式的请求跨域...

  • Vue 实现POST数据,并请求数据

    安装vue-resource 打开main.js配置vue-resource 点击按钮实现POST数据 Get获取...

  • 请求

    get请求 post请求 Jsonp请求这里是基于 vue 框架写的方法,主要是参考请求中的参数 get请求:两个...

  • Angular基础(下)

    $http 1、$http method设置请求的方式:get , post , jsonp , head , p...

网友评论

      本文标题:vue-resource实现get、post、jsonp请求

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