第一种:vue-resource
脚手架中安装命令:npm install vue-resource --save
在main.js中引入vue-resource
import vueResource from 'vue-resource'
Vue.use(vueResource)
渲染数据:
get和jsonp
This.$http.get(“地址”).then((res)=>{
成功回调函数
},(error)=>{
失败回调函数
})
第二种:axios
脚手架中安装命令:npm install axios --save
先引入
main.js中引入
import Axios from‘axios’
Vue.prototype.axios = Axios
渲染数据
this.axios.get('地址').then(function (response) {
console.log(response);
}).catch(function (error) {
console.log(error);
})
注:
一、跨域的几种情况
1.协议不同
http://www.baidu.com
https://www.baidu.com
2.端口不同
http://www.baidu.com:80
http://www.baidu.com:8888
3.主域不同
http://www.baidu.com
http://www.sohu.com
4.子域不同,主域相同
http://image.baidu.com
http://news.baidu.com
5.域名和IP
http://www.baidu.com
http://61.135.169.121/aaa.php
http://www.baidu.com/aa/aa.php
http://www.baidu.com/bb/bb.php
二、jsonp实现原理
动态创建script,传递callback函数给后端,后端接收callback,返回函数调用,实参为json
<script src="aa.php?callback=render"></script>
function render () {
}
三、利用webpack代理方式跨域
在config----->index.js文件里面
proxyTable: {
"/v2":{
target:"https://api.douban.com",
changeOrigin:true, --是否跨域
pathRewrite:{
"^/v2":"/v2"
}
}
}