axios跨域请求响应的headers中没有Authorization问题解决

Java技术 潘老师 9个月前 (01-28) 875 ℃ (0) 扫码查看

当我在使用axios发送跨域请求时,发现请求的响应头中虽然设置的Authorization但是还是获取不到,axios请代码如下:

export async function login(user){
    var response = await axios.post(server_url+"/api-user/login",user);
    return response;
}

调用如下:

login(this.ruleForm).then(res=>{
    console.log(res);
    console.log("token="+res.headers.authorization)
})

后台代码如下:

@RestController
@RequestMapping("/api-user")
@CrossOrigin(origins = {"http://localhost:8081"},allowCredentials="true")
public class AdUserController {
    private Logger logger = LoggerFactory.getLogger(AdUserController.class);
    @Autowired
    private AdUserService adUserService;
    @Autowired
    private JwtUtil jwtUtil;

    //    列出所有后台用户
    @GetMapping("listAllUsers")
    public ResponseResult listAllUsers(){
        logger.info("listAllUsers-----------");
        List<AdUser> users = adUserService.listAllUsers();
        return ResponseResult.ok(users);
    }

    //    登录
    @PostMapping("login")
    @PassLogin
    public ResponseResult login(@RequestBody AdUser user,HttpServletResponse response){
        logger.info("login--------"+user.getUsername()+","+user.getPassword());
        AdUser adUser = adUserService.login(user);
        if(adUser == null){
            logger.error("登录失败");
            return ResponseResult.forbidden().setMsg("用户名或密码错误");
        }
        //签发token
        String token = jwtUtil.createToken(adUser.getUserId().toString());
        logger.info("签发的token:"+token);
        //token存入响应头
        response.setHeader("Authorization","Bearer "+token);
        return ResponseResult.ok(adUser);
    }
}

结果打印发现headers中没有Authorization:
axios跨域请求响应的headers中没有Authorization问题解决

解决办法

只需要在response.setHeader前加上如下代码即可:

response.addHeader("Access-Control-Expose-Headers","Authorization");

再次请求,效果如下:
axios跨域请求响应的headers中没有Authorization问题解决


版权声明:本站所有文章,如无特殊说明,均为本站原创。全部下载资源版权归原作者所有。任何个人或组织,若未征得本站同意,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。若需转载请注明文章来源。
本文链接:axios跨域请求响应的headers中没有Authorization问题解决
喜欢 (7)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】

您也可以 微信登录 来发表评论!