1、首页展示用户名
- 当用户登录成功后,在cookie中有token信息。
- 从cookie中取token根据token查询用户信息。
- 把用户名展示到首页。
方案一:在Controller中取cookie中的token数据,调用sso服务查询用户信息。
方案二:当页面加载完成后使用js取token的数据,使用ajax请求查询用户信息。
问题:服务接口在sso系统中。Sso.taotao.com(localhost:8088),在首页显示用户名称,首页的域名是www.taotao.com(localhost:8082),使用ajax请求跨域了。
Js不可以跨域请求数据。
什么是跨域:
- 域名不同
- 域名相同端口不同。
解决js的跨域问题可以使用jsonp。Jsonp不是新技术,是跨域的解决方案。使用js的特性绕过跨域请求。Js可以跨域加载js文件。
2、JSonP原理
2.1 JsonP的客户端
2.2 jsonP的服务端
- 接收callback参数,取回调的js的方法名。
- 业务逻辑处理。
- 响应结果,拼接一个js语句。
Jsonp 第二种方法:使用spring 4.1以上版本, 需要创建一个mappingJacksonValue