Access-Control-Allow-Credentials 跨域

前后端分离的项目中肯定会碰到跨域的问题,究其原因还是为了安全。我在一个前端工程调试过程中发现,即使我后端已经允许了跨域,但是前端依然报一个跨域错误。

Access to XMLHttpRequest at 'http://localhost/api/admin/authorizations' from origin 'http://localhost:9528' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Credentials' header in the response is '' which must be 'true' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.

尝试了很多网上的方法也都没有弄清原因在哪里。索性就仔细研究一下 Access-Control-Allow-Credentials 这个头的作用,果然药到病除。这个是服务端下发到客户端的 response 中头部字段,意义是允许客户端携带验证信息,例如 cookie 之类的。这样客户端在发起跨域请求的时候,不就可以携带允许的头,还可以携带验证信息的头,又由于客户端是请求框架是 axios,并且手残的设置了 withCredentials: true,意思是客户端想要携带验证信息头,但是我的服务端设置是 'supportsCredentials' => false, ,表示不允许携带信息头,好了,错误找到了。

我们的客户端和服务端交互的时候使用的是 token,通过 Authorization头发送到服务端,并没有使用到 cookie,所以客户端没有必要设置 withCredentials: true,一顿操作猛如虎🤣🤣。

参考文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cooki...
    时芥蓝阅读 6,919评论 1 17
  • 3月25日 周一 HTTP缓存 ·加速资源 更好地利用缓存资源,可以提高网站的性能和响应速度。为了优化缓存,过期时...
    Aniwer阅读 3,401评论 0 0
  • 西风多愁怨 雪压半边天 故人不复还 鹧鸪声迹断 苍山洱海畔 晓看云意传 历历万缕烟 归去舟一片 水漾西斜短 渡口旧...
    豫新阅读 2,885评论 0 0
  • 在职场打拼,每个人都应该有过辞职的经历,也都有一个正当理由。并且每个职场人在递交辞职报告时都会遇到一个类似的情景。...
    智盛心法阅读 3,180评论 0 0
  • 不要小看聊天儿,很多人把聊天儿看作是耽误时间,其实如果 多和你的顾客聊聊天儿,他们会更愿意买你的产品。...
    国粹堂秦国强阅读 1,709评论 0 0