javascript - 如何让浏览器在发起跨域HTTP请求时包含主机源域的cookies
问题描述
我使用 Fetch api 将凭据设置为“include”,从网站“demo.home.com”向“demo.company.com”发出了跨域 HTTP 请求。有两个饼干。一个是'cookie_home=123; 域=demo.home.com',另一个是'cookie_company=456; 域=demo.company.com'。因此,请求中包含了 cookie 'cookie_company'。有什么方法可以让 cookie 'cookie_home' 包含在请求中?
// the request is made in the website 'http://demo.home.com'
// the cookies are:
// 'cookie_home=123; Domain=demo.home.com'
// 'cookie_company=456; Domain=demo.company.com'
fetch('http://demo.company.com/api/test', {
method: 'GET',
credentials: 'include'
});
解决方案
你不能。fetch
(and XMLHttpRequest
) 不提供在请求中手动设置 cookie 的机制。
他们只会在浏览器的 cookie jar 中为目标 URL 发送 cookie。这适用于 cookie 所属域的正常规则。
您需要使用其他一些机制来发送您将存储在 cookie 中的数据。
推荐阅读
- javascript - 如何在 React (Hooks) 中从数组状态中删除元素
- php - PHP Mailer - 454 TLS 连接失败
- python - 如何从多个子流程公开普罗米修斯指标?
- histogram - Stata彼此相邻绘制直方图
- google-cloud-platform - 使用 python 和 Google Cloud Datacatalog 批量标记 Bigquery 列
- javascript - setTimeOut 在 for loop Javascript React 内部不起作用
- c# - Azure WebService 找不到我的程序集之一,但它基于 Azure 控制台存在
- python - 机器学习功能专栏
- python - 从views.py Django编辑列并将数据发送到数据库
- firebase-authentication - 使用 Firebase 联合身份验证对私有路由做出反应?