credentials,即用户凭证,是指 cookie、HTTP身份验证和TLS客户端证书。须要注意的是,它不涉及代理身份验证或源标头。跨域
规范文档中描述,它在特定状况下会报错cookie
throws an
InvalidStateError
exception if state is not unsent or opened, or if the send() flag is set.spa
这里的 state 是指 XMLHttpRequest 的 readyState 属性,咱们来简单回顾一下相关内容。代理
状态 | 状态码 | 说明 |
---|---|---|
unsent | 0 | 初始化 XMLHttpRequest 对象以后 |
opened | 1 | open() 方法成功执行以后 |
headers received | 2 | 全部的重定向都找到了,全部的 response 的响应头都收到了 |
loading | 3 | response's body 正在接收 |
done | 4 | 数据接收完成或者出错了 |
send() flag
是在调用 send() 方法以后设置的。当 state 为 done 时,销毁 send() flag
code
原来,在IE10环境下,withCredentials 属性必须在open方法成功执行以后
,send执行以前设置才能够,不然会报错。若是open方法执行失败了,设置 withCredentials 属性依然会报错。相关演示以下图所示对象
详情参看 XMLHttpRequest 文档 https://xhr.spec.whatwg.org/图片