ajax_withCredentials 属性
发布网友
发布时间:2023-01-01 21:57
我来回答
共1个回答
热心网友
时间:2023-10-08 20:09
什么是 credentials
credentials,即用户凭证,是指 cookie、HTTP身份验证和TLS客户端证书。需要注意的是,它不涉及代理身份验证或源标头。
XMLHttpRequest 的 withCredentials 属性
默认值为false。在获取同域资源时设置 withCredentials 没有影响。
ajax会自动带上同源的cookie,不会带上不同源的cookie
可以通过前端设置withCredentials为true, 后端设置Header的方式来让ajax自动带上不同源的cookie,但是这个属性对同源请求没有任何影响, 会被自动忽略。
true:在跨域请求时,会携带用户凭证
false:在跨域请求时,不会携带用户凭证;返回的 response 里也会忽略 cookie
规范文档中描述,它在特定情况下会报错
throws an InvalidStateError exception if state is not unsent or opened, or if the send() flag is set.
这里的 state 是指 XMLHttpRequest 的 readyState 属性,我们来简单回顾一下相关内容。
IE 10
原来,在IE10环境下,withCredentials 属性必须在open方法成功执行之后,send执行之前设置才可以,否则会报错。如果open方法执行失败了,设置 withCredentials 属性依然会报错。