angular+springboot前后端分离无法获取返回response头中的Authorization

问题描述:项目前后端分离时,因为使用到jwt需要将jwt设置到Authorization中,页面也可以显示Authorization。但是angular无法获取到。

解决办法:

后台服务器解决跨域的地方添加设置:

config.addExposedHeader("Authorization");

后台完整代码:

// cors跨域资源共享过滤器
	@Bean
	public CorsFilter corsFilter() {
		UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
		CorsConfiguration config = applicationProperties.getCors();
		log.info(config.getAllowedOrigins().get(0));
		/*
		 * if (config.getAllowedOrigins() != null &&
		 * !config.getAllowedOrigins().isEmpty()) {
		 * log.debug("Registering CORS filter");
		 * source.registerCorsConfiguration("/api/**", config);
		 * source.registerCorsConfiguration("/v2/api-docs", config); }
		 */
		config.addExposedHeader("Authorization");
		source.registerCorsConfiguration("/**", config);
		return new CorsFilter(source);
		
	}

前台代码:

return $http({method:'POST',
	withCredentials:true, //运行携带cookie
    url:'http://*******:8080/login4',
    data: data}).success(authenticateSuccess);
function authenticateSuccess (data, status, headers) {
	var bearerToken = headers('Authorization');
	if (bearerToken!=null&&angular.isDefined(bearerToken) && bearerToken.slice(0, 7) === 'Bearer ') {
	var jwt = bearerToken.slice(7, bearerToken.length);
	service.storeAuthenticationToken(jwt,data.data.trueName);
	return jwt;
 }              
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值