Spring Security 错误解决记录
发布日期:2021-05-12 03:45:48 浏览次数:12 分类:精选文章

本文共 829 字,大约阅读时间需要 2 分钟。

情况:前端出现跨域请求时的异常提示,指出Access-Control-Allow-Credentials头的响应值为空,而请求凭证模式为include,导致异常。

解决方法:

【错误信息示例】

Access到XHR请求'http://localhost:9999/homeManager/user/login'从起点'http://192.168.1.12:8000'被CORS策略阻止:响应头'Access-Control-Allow-Credentials'为空,必须设置为'true',前提是请求的凭证模式为'include'。由XHR请求控制的凭证模式由'withCredentials'属性决定。

【解决方案】

在后端返回时添加以下设置:

response.setHeader("Access-Control-Allow-Credentials", "true");

【CORS配置说明】

  • CORS(跨域资源共享)常用头部说明:
    • Access-Control-Allow-Origin: *:允许任何域名访问资源(建议设置为具体域名或使用*
    • Access-Control-Allow-Methods: GET, POST, etc.:明确允许的HTTП动作
    • Access-Control-Allow-Headers: Content-Type, Authorization, etc.:允许传输的特定头部信息
    • 特别注意:对于支持凭证的CORS场景,需添加Access-Control-Allow-Credentials: true,以支持withCredentials属性的请求。
  • 【总结】

    正确配置CORS应实现Access-Control-Allow-OriginAccess-Control-Allow-Credentials两个头部设置,前者设置为允许访问的域名,后者设置为支持凭证传输。每个项目根据实际需求设定,确保前后端环境相容性。

    上一篇:MyBatis 笔记(万字长文)
    下一篇:什么是缓存穿透,缓存击穿和缓存雪崩?

    发表评论

    最新留言

    第一次来,支持一个
    [***.219.124.196]2025年04月20日 21时35分34秒