JavaScript请求头
外观
JavaScript请求头[编辑 | 编辑源代码]
请求头(HTTP Headers)是HTTP协议中客户端与服务器通信时传递的元数据信息,用于描述请求或响应的属性、控制缓存机制、认证信息等。在JavaScript网络请求中,通过设置请求头可以精细控制AJAX或Fetch API的行为。本章将详细介绍请求头的核心概念、操作方法及实际应用。
基本概念[编辑 | 编辑源代码]
HTTP请求头由键值对组成,格式为Header-Name: Header-Value
。常见的标准请求头包括:
Content-Type
:指定请求体的MIME类型(如application/json
)Authorization
:携带认证凭证(如Bearer Token)User-Agent
:标识客户端类型Accept
:声明可接受的响应格式
请求头的作用[编辑 | 编辑源代码]
JavaScript中的操作[编辑 | 编辑源代码]
通过Fetch API设置[编辑 | 编辑源代码]
// 基础示例
fetch('https://api.example.com/data', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Custom-Header': 'value123'
},
body: JSON.stringify({ key: 'value' })
})
.then(response => response.json())
.then(data => console.log(data));
关键参数说明:
headers
对象定义所有需要发送的请求头- 自定义头通常以
X-
前缀开头(非强制但为约定)
通过XMLHttpRequest设置[编辑 | 编辑源代码]
const xhr = new XMLHttpRequest();
xhr.open('GET', 'https://api.example.com/data');
xhr.setRequestHeader('Accept-Language', 'en-US');
xhr.onload = function() {
console.log(xhr.responseText);
};
xhr.send();
常见请求头详解[编辑 | 编辑源代码]
头字段 | 示例值 | 作用 |
---|---|---|
Accept |
application/json |
指定客户端理解的响应格式 |
Content-Type |
text/html; charset=utf-8 |
请求体的媒体类型 |
Authorization |
Bearer abc123... |
身份验证凭证 |
Cache-Control |
no-cache |
控制缓存行为 |
实际应用案例[编辑 | 编辑源代码]
案例1:API身份验证[编辑 | 编辑源代码]
// 使用JWT进行认证
const token = 'eyJhbGci...';
fetch('/protected-data', {
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
案例2:内容协商[编辑 | 编辑源代码]
// 请求特定语言版本的资源
fetch('/document', {
headers: {
'Accept-Language': 'fr-CH, fr;q=0.9, en;q=0.8'
}
});
高级主题[编辑 | 编辑源代码]
自定义元数据[编辑 | 编辑源代码]
可通过自定义头传递业务逻辑信息(需确保服务器支持):
headers: {
'X-Client-Version': '2.3.0',
'X-Request-ID': uuidv4()
}
CORS相关头[编辑 | 编辑源代码]
跨域请求时需要特别注意:
Origin
:自动由浏览器添加Access-Control-Request-Headers
:预检请求中声明实际请求的头
注意事项[编辑 | 编辑源代码]
- 敏感信息:避免在请求头中直接传输密码等机密数据
- 大小写不敏感:但惯例使用首字母大写的连字符格式(如
Content-Type
) - 头长度限制:不同服务器对有不同限制(通常8KB以内)