跨域:跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,基于同源策略的保护,请求不到数据
同源策略:同协议,同端口,同域名
如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击
跨域解决方案:jsonp , cors (后台) ,反向代理
vue反向代理
如果你是用webpack+cli创建的项目:(如果是cli请往下看)
在config/index.js文件中:
module.exports = {
dev: {
// Paths
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {
"/api": {
"target":"http://122.51.36.194:5080",//你要代理的api
"changeOrigin":true,
"pathRewrite": {
"^/api":""//api相当于一个别名
}
}
},//后边的大括号不要忘记
访问时就通过/api
instance.post('/api/......',data).then(res=>{
console.log(res)
})
react反向代理
1.配置单个反向代理
在package.json 中添加proxy选项
组件中调用时去掉域名即可
在webpack版本2.0以下,可以是对象(可以设置多个)
在webpack版本2.0以上,只能是字符,只能有一个反向代理
2.配置多个反向代理
安装cnpm i http-proxy-middleware -D
在src文件中新建setupProxy.js文件:
const proxy = require('http-proxy-middleware')
module.exports=function(app){
app.use(