目录:
- Vue-resource介绍
- 基本用法
- 用vue-resource发送jsonp请求
一、Vue-resource介绍
使用Vue-resource发送跨域请求,安装vue-resource并引入
cnpm install vue-resource -S
或者自己手动下载vue-resource.min.js
Vue-resouce其实跟axios是一样的,但是官方建议使用axios,但是大部分公司还在用vue-resouce,因为axios不支持 jsonp跨域请求,但是vue-resource支持的。
我们查看一下 vue-resource的github的官方地址:Github官方地址(这个里面有很详细的vue-resource的使用方法),也可以在 百度文本框: GitHub vue-resource。
如图:
二、基本用法
使用this.$http发送请求
this.$http.get(url, [config]) this.$http.head(url, [config]) this.$http.delete(url, [config]) this.$http.jsonp(url, [config]) this.$http.post(url, [body], [config]) this.$http.put(url, [body], [config]) this.$http.patch(url, [body], [config])
详细使用方法,请查看官网:vue-ressource官方使用文档
三、用vue-resource发送jsonp请求
2.1、语法
说明:当你引入vue-resource是,则vue实例对象中$http,其实这个$http就是指的是vue-resource
this.$http.jsonp("跨域请求的URL",{ params:{ word:'shuaigaogao', //请求参数 } }).then(resp => { console.log(resp.body.s); //请求成功 }).catch(err => { console.log(err ); //请求失败 }).then(function() { console.log("不管怎么样都要执行"); //相当于 finally });
2.2、模拟360搜索关键字
说明:这个是通过抓包的方式获取360搜索接口
<body> <div id="box"> <button @click="sendJsonp">发送jsonp请求</button> </div> <script type="text/javascript" src="../vue.js"></script> <!--引入vue-resource--> <script src="https://cdn.jsdelivr.net/npm/vue-resource@1.5.1"></script> <script> new Vue({ el:"#box", methods:{ sendJsonp(){ this.$http.jsonp("https://sug.so.360.cn/suggest",{ //请求360搜索接口,是通过抓包获取的 params:{ word:'huawei', } }).then(resp => { //请求成功 console.log(resp.body.s); }) } } }) </script> </body>
输出结果,如下:
2.3、模拟百度搜索服关键字
jsonp: 'cb' => 修改jsonp的参数名称,把callback改为cb。
<body> <div id="box"> <button @click="sendJsonp">发送jsonp请求</button> </div> <script type="text/javascript" src="../vue.js"></script> <script src="https://cdn.jsdelivr.net/npm/vue-resource@1.5.1"></script> <script> new Vue({ el:"#box", methods:{ sendJsonp(){ this.$http.jsonp("https://sp0.baidu.com/5b1ZeDe5KgQFm2e88IuM_a",{ params:{ wd:'huawei', }, jsonp: 'cb' //百度使用时jsonp参数名改为cb,所以需要修改 }).then(resp => { console.log(resp); }); } } }) </script> </body>