- AJAX 教程
- AJAX - 教程
- AJAX - 什么是 AJAX?
- Ajax - 历史
- Ajax - 动态站点与静态站点
- AJAX - 技术
- AJAX - action(操作)
- AJAX - XMLHttpRequest
- AJAX - 发送请求
- AJAX - 请求类型
- AJAX - 处理响应
- AJAX - 处理二进制数据
- AJAX - 提交表单
- AJAX - 文件上传
- AJAX - FormData 对象
- AJAX - 发送 POST 请求
- AJAX - 发送 PUT 请求
- AJAX - 发送 JSON 数据
- AJAX - 发送数据对象
- AJAX - 监控进度
- AJAX - 状态代码
- AJAX - 应用程序
- AJAX - 浏览器兼容性
- AJAX - 浏览器支持
- AJAX - 数据库操作
- AJAX - 安全性
- AJAX - 常见问题
- Fetch API 基础知识
- Fetch API - 基础知识
- Fetch API 与 XMLHttpRequest
- Fetch API - 浏览器兼容性
- Fetch API - headers
- Fetch API - 请求
- Fetch API - 响应
- Fetch API - 正文数据
- Fetch API - 凭证
- Fetch API - 发送 GET 请求
- Fetch API - 发送 POST 请求
- Fetch API - 发送 PUT 请求
- Fetch API - 发送 JSON 数据
- Fetch API - 发送数据对象
- Fetch API - 自定义请求对象
- Fetch API - 上传文件
- Fetch API - 处理二进制数据
- Fetch API - 状态代码
- Stream API 基础知识
- Stream API - 基础
- Stream API - 可读流
- Stream API - 可写流
- Stream API - 转换流
- stream API - 请求对象
- stream API - 响应正文
- Stream API - 错误处理
Fetch API - 凭证
在 Fetch API 中,Cookie、授权标头和 TLS 客户端证书称为凭据。我们也可以说 as 凭证是数字文档(如密码、用户名、证书等),它们在向服务器发出请求时确认用户或客户端的身份。
让我们在下面更详细地了解这些凭证 -
- Cookie − 它们是由 Web 浏览器存储并与所有相同来源请求一起发送的小块数据。它用于存储会话信息、常用数据等。他们还控制其会话、范围和可访问性。Cookie 也由服务器在 Set-Cookie 标头的帮助下发送。
- 授权Headers - 这些 Headers 包括包含身份验证信息(如密码、用户名、密钥等)的 HTTP 标头。授权Headers 用于实现各种身份验证架构,并且还由服务器使用各种方法(如哈希、加密等)进行验证。
- TLS 客户端证书 - 它们是由认证机构提供的数字证书,也安装在客户端的设备上。它们用于提供客户端的身份证明,同时在传输层安全性的帮助下与服务器建立安全连接。
Credentials 属性
credentials 属性控制是否在跨域请求中发送 Cookie 和其他凭证证书。它是 fetch() 函数中的可选属性。
语法
fetch(resourceURL, {credentials:"include"})
此属性可以具有以下三个值中的一个值 -
- omit - 当 credentials 属性的值设置为 omit 时,这意味着浏览器将从请求中删除所有凭据,并忽略响应中发送的凭据。
- same-origin - 当 credentials 属性的值设置为 same-origin 时,这意味着浏览器将在向与请求页面相同的源发出的请求中包含凭据。并且仅使用来自相同源 URL 的凭据。它是此属性的默认值。
- include − 当 credentials 属性的值设置为 include 时,这意味着浏览器将在同源和跨源请求中包含凭据,并始终使用在响应中发送的那些凭据。
示例 1
在下面的程序中,我们使用 fetch() 函数向给定的 URL 发出请求。在这里,我们将 credentials 属性设置为 “include” 值,该值表示请求中包含的跨源和同源凭据。将请求发送到服务器后,我们现在使用 then() 函数来处理响应。如果我们遇到错误,则该错误由 catch() 函数处理。
<!DOCTYPE html>
<html>
<body>
<script>
// Retrieving data from the URL using a GET request
fetch("https://jsonplaceholder.typicode.com/todos/21", {
// Sending both same-origin and
// cross-origin credentials
credentials: "include"
})
// Converting received data into text
.then(response => response.text())
.then(myData => {
// Display the retrieve Data
console.log(myData);
})
.catch(err=>{
// Cach error if occur
console.log("Found Error:", err)
});
</script>
<h2>Fetch API Example</h2>
</body>
</html>
输出
示例 2
在下面的程序中,我们使用 fetch() 函数向给定的 URL 发出请求。在这里,我们将 credentials 属性设置为 “same-oigin” 值,这意味着凭证仅包含在对同一源或域发出的请求中。将请求发送到服务器后,我们现在使用 then() 函数来处理响应。如果我们遇到错误,则该错误由 catch() 函数处理。
<!DOCTYPE html>
<html>
<body>
<script>
// Retrieving data from the URL using a GET request
fetch("https://jsonplaceholder.typicode.com/todos/21", {
// Sending credentials only for the same domain request
credentials: "same-origin"
})
// Converting received data into text
.then(response => response.text())
.then(myData => {
// Display the retrieve Data
console.log(myData);
})
.catch(err=>{
// Cach error if occur
console.log("Found Error:", err)
});
</script>
<h2>Fetch API Example</h2>
</body>
</html>
输出
结论
因此,使用凭证,我们可以控制凭证在请求中的发送方式,或者如何处理响应中发回的凭证。credentials 属性仅影响跨域请求,对于同源请求,浏览器会自动将凭证添加到请求中。现在在下一篇文章中,我们将学习如何在 Fetch API 中发送 GET 请求。