那些年踩过的坑——node代办处理跨域的题目

在现实开辟中,前后端星散的项目一般会须要同背景开辟人员联调接口,不可避免的会遇到跨域的题目。虽然说跨域题目末了基础都是背景同事处理的,然则有时刻为了赶时间,没辙只需本身来,运用node代办处理

 跨域:协定 域名 端口号 三个只需有一个不一样就是跨域,也就是差别域名之间的接见;
 一般处理跨域的要领 前端jsonp要求  或许node代办 
 背景设置拦截器或许运用 注解@CrossOrigin(我本身写的基础都是用的全部 设置成*摊开一切的要求,横竖也是写着玩玩的)
 前端vue百口桶一条龙服务,背景ssm
 首先在vue项目中 在config目录下index.js
  proxyTable: {
  '/api': {    
    target: 'http://localhosst:8080/Maybe/',  // 接口域名
    changeOrigin: true,  //是不是跨域
  //    pathRewrite: {
 //     '^/api': ''   //须要rewrite的,
 //   }
  }
},
然后将axios的baseURL  设置为'/api' 然后跨域的题目就处理了

( ps:封装axios的时刻 记得一定要照顾cookie

 axios.defaults.withCredentials=true  //要求照顾cookie
 不然后端取到的session也是空的
)
然则这个时刻 会涌现一个题目 session 丧失的题目,接口是通的,然则后端却取到的session确是空的
处理要领
proxyTable: {
  '/Maybe': {   
    target: 'http://localhosst:8080/',  // 接口域名
    changeOrigin: true,  //是不是跨域
  //    pathRewrite: {
 //     '^/api': ''   //须要rewrite的,
 //   }
  }
},
注重:代办名要与application context(就是项目名称)雷同;跨域changeOrigin: true;RewritePath,
是将对资本的要求重定向到另一途径,使其差别于所要求 URL 指导的途径,依据现实情况看要不要加。

实在真正的session途径在/Maybe下,然则上面这个要求虽然被代办到http://localhosst:8080/Maybe,
很明显的要求http://localhosst:8080/api/Maybe 所照顾的cookie在/api途径下面,
在/api途径找/Maybe下cookie肯定是找不到的啦,所以就涌现了虽然能接见到接口,但取到的session确是空的。


    原文作者:Maybe
    原文地址: https://segmentfault.com/a/1190000017900027
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞