- 什么是跨域?
跨域问题的出现,主要就是因为浏览器的 “ 同源策略 ”
若域名、端口、协议有一项不同则会发生跨域
如何解决跨域问题?
1.使用jsonp解决跨域问题,(只支持get请求 不支持post请求),通过script中的src动态创建,src不受影响,允许引用资源
2.设置相应头(可以推荐)
header("Access-Control-Allow-Origin:*");
header("Access-Control-Allow-Methods:POST,GET");
设置跨域通配符
3.使用反向代理,设置一个代理服务器来接收客户端的请求,
4.在项目中config文件夹下的index.js文件里面有个module.exports对象,里面有个dev对象中有个proxyTable对象在里面新加一下代码
proxyTable: {
'/apx':{
target:'https://mp.csdn.net',//后台的IP或域名
checkOrigin:true,//是否跨域
pathRewrite:{
'^/apx':''//(重写为空)在使用时直接用/apx+接口就可以调用了
}
}
}
//使用时
let url = '/apx+接口';
let params = {};
$post.post(url,params).then(res=>{})
axios请求
axios.post("/apx").then(res => {
console.log(res);
this.data = res.data.data;
});
//如果有参数请求
axios.post("/apx?key=111").then(res => {
console.log(res);
this.data = res.data.data;
});