跨域复习

使用webpack的proxy

vue.config.js

module.exports ={
  //代理跨域
  devServer:{
      proxy:{
          '/api':{
              target:'http://39.98.1223.211'
          }
      }
  }
}

 

当协议,端口,域名有一个不同时,此时就需要跨域;

跨域的几种解决方式:Webpack proxy, nginx反向代理, webpack plugin,jsonp, cors;

1.webpack中的proxy

module.exports = {
devServer:{
proxy:{ //代理
'/api':{
target:'http://localhosy:3000',
//后端无需使用/api开头
pathRewrite:{'/api':''}
}
}
}

}

后端拦截api的请求

let xhr = new XMLHttpRequest();
xhr.open('get','/user',true);
xhr.onload= function(){
console.log(xhr.response);
}
xhr.send();

2.CORS

var allowCrossDomain =function(req,res,next){
  //请求源 ajax http://localhosy:8080 *允许任何请求源
  res.header("Access-Control-Allow-Origin","*");
  //请求头 x-token 允许任何请求头
  res.header("Access-Control-Allow-Headers","*");
  //请求方法 get post put del
  res.header("Access-Control-Allow-Methods,"*");
  newxt();
}
app.use(allowCrossDomain);
//app.get('/user',(req,res)=>{
res.json{name:'xj'}
})
app.listen(3000,function(){
console.log('服务器启动,端口3000')
})
 

 

posted @ 2022-05-06 20:59  ajaXJson  阅读(14)  评论(0编辑  收藏  举报