withCredentials 属性

简介: 跨域请求中若需发送Cookie,服务器须设置Access-Control-Allow-Credentials: true,并明确指定Access-Control-Allow-Origin为具体域名,不能为星号。前端需在XMLHttpRequest中显式设置withCredentials = true,否则浏览器不会携带Cookie。注意,Cookie遵循同源策略,仅服务器域名下的Cookie可被上传,前端无法通过document.cookie读取跨域Cookie。

上面说到,CORS请求默认不发送Cookie和HTTP认证信息。如果要把Cookie发到服务器,一方面要服务器同意,指定Access-Control-Allow-Credentials字段。
Access-Control-Allow-Credentials: true
另一方面,开发者必须在AJAX请求中打开withCredentials属性。
var xhr = new XMLHttpRequest(); xhr.withCredentials = true;
否则即使服务器同意发送Cookie浏览器也不会发送。或者服务器要求设置Cookie,浏览器也不会处理。
但是,如果省略withCredentials设置,有的浏览器还是会一起发送Cookie。这时可以显式关闭withCredentials。
xhr.withCredentials = false;
需要注意的是,如果要发送Cookie,Access-Control-Allow-Origin就不能设为星号,必须指定明确的、与请求网页一致的域名。同时,Cookie依然遵循同源政策,只有用服务器域名设置的Cookie才会上传,其他域名的Cookie并不会上传,且(跨源)原网页代码中的document.cookie也无法读取服务器域名下的Cookie。

相关文章
|
Java 数据库连接
后端校验(hibernate-validator)
后端校验(hibernate-validator)
563 0
|
1月前
|
前端开发 JavaScript Java
Spring Boot中使用拦截器
拦截器是Spring Boot中AOP的一种实现,用于拦截动态请求,常用于权限控制、登录验证等场景。它不拦截静态资源(如static目录下的文件),但需注意配置方式对静态资源的影响。通过实现HandlerInterceptor接口,可在请求前、后及完成后执行逻辑。自定义拦截器后,通过WebMvcConfigurer添加路径匹配规则即可生效。支持灵活配置,如排除特定方法拦截,结合注解实现可插拔控制,适用于前后端分离或传统项目中的请求过滤需求。
|
Java API Spring
API管理工具Swagger介绍及Springfox原理分析
swagger是一个API框架,号称世界上最流行的API工具。它提供了API管理的全套解决方案,比如API在线编辑器,API UI展示界面,代码生成器等诸多功能。
11833 104
|
前端开发 Java
(前后端分离)SpringBoot配置全局跨域,前端一访问就报错的原因竟然是这个
(前后端分离)SpringBoot配置全局跨域,前端一访问就报错的原因竟然是这个
467 0
|
JSON Unix 数据格式
docker权限不足Got permission denied while trying to connect to the Docker daemon socket at unix:///var/r
docker权限不足Got permission denied while trying to connect to the Docker daemon socket at unix:///var/r
2636 0
|
Unix Docker 容器
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker
2026 0
|
搜索推荐 算法 Linux
这款文本转语音(TTS)
【8月更文挑战第6天】Fish Speech是一款先进的开源文本转语音(TTS)工具,它能迅速将文字转换为流畅自然的语音,尤其适合镜头前感到紧张的人制作视频内容。Fish Speech支持中文、英文及日文等多种语言,可通过简单的原始语音样本快速克隆个性化声音。其架构设计高效,仅需4GB显存即可运行,采用Flash-Attn算法实现高性能语音合成。Fish Speech具备易用性,提供Web界面操作,并可在Linux与Windows系统上部署。用户可通过官网([https://fish.audio/zh-CN/](https://fish.audio/zh-CN/))直接体验其强大功能。
1402 0
|
XML JSON Java
SpringBoot基础
SpringBoot基础
198 4
|
安全 Linux 数据安全/隐私保护
详解如何登录Docker Registry
【8月更文挑战第24天】
1889 0
vue3中的父子间传值
vue3中的父子间传值
199 1

热门文章

最新文章