xhr.setRequestHeader报错Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED."
时间: 2024-01-16 15:03:15 浏览: 269
XMLHTTP中setRequestHeader参数问题
这个错误通常是因为在调用 `setRequestHeader()` 方法之前,没有先调用 `open()` 方法打开 XMLHttpRequest 对象。如果没有先调用 `open()` 方法,XMLHttpRequest 对象的状态是 0(UNSENT),此时不能设置请求头。
因此,可以按照以下代码顺序进行调用:
```javascript
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://example.com/api/data', true);
xhr.setRequestHeader('Authorization', 'Bearer ' + token);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
// 请求成功后的处理代码
}
};
xhr.send();
```
在上面的代码中,首先调用 `open()` 方法打开 XMLHttpRequest 对象,然后再调用 `setRequestHeader()` 方法设置请求头。最后调用 `send()` 方法发送请求。
阅读全文