首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Chrome忽略扩展程序中XMLHttpRequest的Set-Cookie响应标头

在这个问答内容中,我们讨论了Chrome浏览器在处理扩展程序中的XMLHttpRequest时忽略Set-Cookie响应标头的问题。

首先,XMLHttpRequest是一种用于在客户端和服务器之间传输数据的技术。它允许网页向服务器发送异步请求,从而实现在不刷新整个页面的情况下更新部分网页内容。

在Chrome浏览器中,出于安全和隐私的考虑,扩展程序中的XMLHttpRequest默认不会接收Set-Cookie响应标头。这意味着扩展程序无法直接访问服务器返回的Cookie信息。

然而,在某些情况下,扩展程序可能需要访问服务器返回的Cookie信息。为了解决这个问题,Chrome提供了一个名为"extraHeaders"的属性,可以用来在扩展程序中显式请求Set-Cookie响应标头。

要使用"extraHeaders"属性,您需要在XMLHttpRequest对象的open()方法中设置"withCredentials"属性为true。然后,在send()方法中添加"extraHeaders"属性,如下所示:

代码语言:javascript
复制
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://example.com/api", true);
xhr.withCredentials = true;
xhr.onreadystatechange = function() {
  if (xhr.readyState == 4 && xhr.status == 200) {
    console.log(xhr.responseText);
  }
};
xhr.setRequestHeader("extraHeaders", "Set-Cookie");
xhr.send();

请注意,在使用"extraHeaders"属性时,您需要确保服务器已经配置为允许跨域请求,并且已经设置了正确的CORS策略。

总之,Chrome浏览器在处理扩展程序中的XMLHttpRequest时默认忽略Set-Cookie响应标头,但是可以通过设置"extraHeaders"属性来显式请求它。在使用"extraHeaders"属性时,请确保服务器已经配置为允许跨域请求,并且已经设置了正确的CORS策略。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

跨域资源共享(CORS)

这意味着使用这些API的Web应用程序只能从加载应用程序的同一个域请求HTTP资源,除非响应报文包含了正确CORS响应头 CORS机制支持安全的跨域请求以及浏览器和服务器之间的数据传输。...ReadableStream请求中未使用任何对象。 注意:这些与Web内容已经可以发出的跨站点请求种类相同,除非服务器发送适当的标头,否则不会将响应数据释放给请求者。...此外,设置了非标准的HTTP Ping-Other请求标头。此类标头不是HTTP / 1.1的一部分,但通常对Web应用程序有用。...请注意,Set-Cookie上面示例中的响应头也设置了另一个cookie。如果发生故障,则会引发一个异常(取决于所使用的API)。...请注意,简单的GET请求不会被预先处理,因此,如果对具有凭据的资源进行请求,则如果此标头未随资源一起返回,则浏览器将忽略该响应,并且该响应不会返回到Web内容。

3.6K50

跟我一起探索 HTTP-跨源资源共享(CORS)

这意味着使用这些 API 的 Web 应用程序只能从加载应用程序的同一个域请求 HTTP 资源,除非响应报文包含了正确 CORS 响应头。...,但是,如果 https://bar.other 的响应中缺失 Access-Control-Allow-Credentials: true`(第 16 行),则响应内容会被忽略,不会提供给 web 内容...另外,响应标头中也携带了 Set-Cookie 字段,尝试对 Cookie 进行修改。如果操作失败,将会抛出异常。...HTTP 响应标头字段 本节列出了服务器为访问控制请求返回的 HTTP 响应头,这是由跨源资源共享规范定义的。上一小节中,我们已经看到了这些标头字段在实际场景中是如何工作的。...请注意:简单 GET 请求不会被预检;如果对此类请求的响应中不包含该字段,这个响应将被忽略掉,并且浏览器也不会将相应内容返回给网页。

39030
  • 对不起,看完这篇HTTP,真的可以吊打面试官

    对于应用程序中不会更改的文件,通常可以添加主动缓存。...也就是说使用这些 API 的应用程序想要请求相同的资源,那么他们应该具有相同的来源,除非来自其他来源的响应包括正确的 CORS 标头也可以。...注意上面示例中的 Set-Cookie 响应标头还设置了另外一个值,如果发生故障,将引发异常(取决于所使用的API)。...创建 Cookie 当接收到客户端发出的 HTTP 请求时,服务器可以发送带有响应的 Set-Cookie 标头,Cookie 通常由浏览器存储,然后将 Cookie 与 HTTP 标头一同向服务器发出请求...Set-Cookie 和 Cookie 标头 Set-Cookie HTTP 响应标头将 cookie 从服务器发送到用户代理。

    6.4K21

    震惊 | HTTP 在疫情期间把我吓得不敢出门了

    对于应用程序中不会更改的文件,通常可以添加主动缓存。...也就是说使用这些 API 的应用程序想要请求相同的资源,那么他们应该具有相同的来源,除非来自其他来源的响应包括正确的 CORS 标头也可以。...注意上面示例中的 Set-Cookie 响应标头还设置了另外一个值,如果发生故障,将引发异常(取决于所使用的API)。...创建 Cookie 当接收到客户端发出的 HTTP 请求时,服务器可以发送带有响应的 Set-Cookie 标头,Cookie 通常由浏览器存储,然后将 Cookie 与 HTTP 标头一同向服务器发出请求...Set-Cookie 和 Cookie 标头 Set-Cookie HTTP 响应标头将 cookie 从服务器发送到用户代理。

    5.4K20

    六万字 HTTP 必备知识学习,程序员不懂网络怎么行,一篇HTTP入门 不收藏都可惜

    在这些基本概念之上,多年来开发了许多扩展,这些扩展使用新的 HTTP 方法或标头添加了更新的功能和语义。 HTTP 协议五个特点: 支持客户/服务器模式。...HTTP 消息可以被人类阅读和理解,为开发人员提供了更容易的测试,并降低了新手的复杂性。 HTTP 是可扩展的 HTTP/1.0 中引入的HTTP 标头使该协议易于扩展和试验。...使用标头可扩展性,HTTP Cookie 被添加到工作流中,允许在每个 HTTP 请求上创建会话以共享相同的上下文或相同的状态。...HTTP 是一种易于使用的可扩展协议。客户端-服务器结构与添加标头的能力相结合,允许 HTTP 与 Web 的扩展功能一起发展。...在应用程序服务器上,Web 应用程序必须检查完整的 cookie 名称,包括前缀 —— 用户代理程序在从请求的 Cookie 标头中发送前缀之前,不会从 cookie 中剥离前缀。

    86230

    ASP.NET Core ResponseCache进行缓存操作

    如果存在此标头,则由 Cache-Control 标头中的相关指令重写。 考虑向后兼容 HTTP/1.0。 Set-Cookie 如果标头存在,则不会缓存响应。...请求处理管道中设置一个或多个 cookie 的任何中间件会阻止响应缓存中间件缓存响应(例如,基于 cookie 的 TempData 提供程序)。...Content-Length 从缓存提供时,如果未在原始响应中提供,则中间件会设置 Content-Length 标头。 Age 忽略原始响应中发送的 Age 标头。...Set-Cookie 标头不得存在。 Vary 标头参数必须有效且不等于 *。 Content-Length 标头值(如果已设置)必须与响应正文的大小匹配。...响应的正文大小必须小于配置的或默认的 MaximumBodySize。 “请求” 或 “响应” 标头字段中不得存在 “no-store” 指令。

    3K20

    18 个运维必知的 Nginx 代理缓存配置技巧,你都掌握了哪些呢?

    HIT - 响应直接来自有效的缓存 Nginx 如何确定是否要缓存响应 默认情况下,Nginx 尊重 Cache-Control 源服务器的标头。...它不缓存响应 Cache-Control 设置为 Private,No-Cache 或 No-Store 或 Set-Cookie 在响应头。Nginx 只缓存 GET 和 HEAD 客户端请求。...该指令强制缓存数据到期,如果忽略标头则需要。Nginx 不会缓存没有过期的文件。 Nginx 是否可以忽略 Set-Cookie 使用 proxy_ignore_headers 指令即可。...这些扩展做了什么: 如果当前正在更新 stale-while-revalidate,Cache-Control HTTP 标头的扩展允许使用陈旧的缓存响应。...HTTP 标头的 stale-if-error 扩展 Cache-Control 允许在发生错误时使用陈旧的缓存响应。

    2.8K20

    程序员应对浏览器同源策略的姿势

    CORS特定HTTP标头,为浏览器提供了授权脚本跨域访问其他域名页面数据的通道。...CORS规范 浏览器发起CORS或POST请求,浏览器会自动携带Origin标头(指示请求来自于哪个站点) Web服务器实现跨域访问授权逻辑, 授权结果在Response中以Access-Control...--******* 标头体现 “最常见的Access-Control-Allow-Origin标头包含 * / Origin /null三种响应值;当请求是携带凭据的跨域请求,不可囫囵吞枣地指定为*通配符...程序员调试CORS的苦恼 跨域请求发生在A--->B 两站,作为某一方开发人员,调试CORS相对麻烦。 ?...总结 浏览器同源策略限制对象是浏览器脚本; 存在跨域请求的场景,某些方案是Hack行为; W3C推出的CORS 是标准的跨域请求方案,思路是在服务端Response标头体现 授权, 浏览器遵守该授权标头

    1.2K30

    【Nginx30】Nginx学习:代理模块(四)响应头与SSL

    Nginx学习:代理模块(四)响应头与SSL 响应头相关的配置也和我们之前在 FastCGI 系列学过的响应头配置是类似的,这一块也比较简单。...Proxy响应头操作 响应头主要针对的是响应的操作,其实也就是对于后端服务返回的响应头,我们可以进行一些显示、隐藏、忽略之类的操作。...proxy_hide_header 默认情况下,Nginx 不会将代理服务器的响应中的标头字段“Date”、“Server”、“X-Pad”和“X-Accel-...”传递给客户端。...proxy_pass_header field; 禁用标头就是 proxy_hide_header 中说的那些默认头字段,主要是 “Date”, “Server”, “X-Pad”, 和 “X-Accel...如果未禁用,则处理这些标头字段具有以下效果: “X-Accel-Expires”、“Expires”、“Cache-Control”、“Set-Cookie”、“Vary”设置响应缓存的参数 “X-Accel-Redirect

    1.1K11

    浏览器输入某URL后,HTTP开启了一段奇妙之旅!

    首先干活的是 浏览器应用程序,他要解析出 URL中的域名 2....根据域名获取对应的ip地址,首先从浏览器缓存中查看,如下可以查看浏览器中域名对应ip的解析 chrome://net‐internals/#events 如果没有则从本机域名解析文件hosts(/etc...浏览器收到响应之后,开始渲染页面 让我们聊一聊HTTP协议 超文本传输协议(HyperText Transfer Protocol,HTTP):一种无状态的,以请求/应答方式运行的协议,它使用可扩展的语义和自描述消息格式...HTTP 头字段非常灵活,不仅可以使用标准里的 Host、Connection 等已有头,也可以任意添加自定义头,这给 HTTP 协议带来了无限的扩展可能。...响应字段:响应头中的头字段,如:Server; 通用字段:在请求头和响应头里都可以出现,如 Content-type,Connection ;

    55520

    反向代理的攻击面 (下)

    一般来说,反向代理服务器会使用缓存标志,该标志与请求的主机头值和路径相关联。 反向代理对某个响应缓存与否,它会先检查请求中的Cache-Control和Set-Cookie标头。...反向代理不会对存在Set-Cookie标头的请求做任何缓存,但是对于Cache-Control有些不同。它会将其视为缓存策略,请求额外的解析。...例如,只缓存响应中某些扩展名(.jpg, .css, .js)或者某个路径(/images/)。 如果是这种情况,攻击者可以创建符合反向代理规则又被后端误判的路径。...Nginx发现请求中存在/image,于是直接转发该请求值Tomcat,然后缓存响应(Tomcat->Nginx,此时Cache-Control标头无效)。...此类攻击依赖于在请求中找到未加密的值(标头),这将显著地影响(从安全角度)接下来的响应,但是在这里,这个响应必须由反向代理服务器缓存,同时Cache-Control标头应当设置为允许。

    1.7K40

    cookie跨域传输cookie问题:nginx跨域代理之proxy_cookie_domain

    设置http头解决跨域问题CORS为我们提供了跨域资源共享的解决方案,通过Access-Control-Allow-Origin Access-Control-Allow-Credentials Access-Control-Allow-Headers...Access-Control-Request-Headers Access-Control-Request-Method OriginAccess-Control-Allow-Credentials 响应头表示是否可以将对请求的响应暴露给页面...后跨域解决方案chrome80版本的声明大致就是说80以后的版本,cookie默认不可跨域,除非服务器在响应头里再设置same-site属性。...proxy_cookie_domain参数的作用是转换response的set-cookie header中的domain选项,由后端设置的域名domain转换成你的域名replacement,来保证cookie...的顺利传递并写入到当前页面中,注意proxy_cookie_domain负责的只是处理response set-cookie头中的domain属性,仅此而已。

    6.8K20

    一文看懂Cookie奥秘

    在HTTP请求模型中以标头的形式体现:Response中Set-Cookie标头种植cookie;Request Cookie标头携带(该请求允许携带的)cookies HTTP/1.0 200 OK...**; path=/; samesite=none; httponly [page content] Cookie标头的内容是键值对(键值对才是具业务含义的cookie);同名cookie覆盖原键值...Set-Cookie标头种植cookie,浏览器javascript也可以种植cookie cookie的种植面积 Domain和Path属性定义了cookie的写入范围:哪些url的请求可以携带该cookie...Http请求中Sec-Fetch-Site标头指示了这个属性: Sec-Fetch-Site 描述 cross-site 请求的发起源与资源源完全不相同 same-origin 请求的发起源与资源源完全相同...在服务端Set-Cookie种植cookie时,SmmeSite属性值可指示浏览器是否可在后续的“同一站点”或“跨站点”请求中携带这些cookie Set-Cookie: X-BAT-TicketId=

    1.6K51

    跟我一起探索 HTTP-Fetch API

    这将在未来更多需要它们的地方使用它们,无论是 service worker、Cache API,又或者是其他处理请求和响应的方式,甚至是任何一种需要你自己在程序中生成响应的方式(即使用计算机程序或者个人编程指令...它同时还为有关联性的概念,例如 CORS 和 HTTP Origin 标头信息,提供一种新的定义,取代它们原来那种分离的定义。 发送请求或者获取资源,请使用 fetch() 方法。...它返回一个 Promise,该 Promise 会在服务器使用标头响应后,兑现为该请求的 Response——即使服务器的响应是 HTTP 错误状态。你也可以传一个可选的第二个参数 init。...Headers 表示响应/请求的标头信息,允许你查询它们,或者针对不同的结果做不同的操作。 Request 相当于一个资源请求。...在 Chrome 中默认使用 follow(Chrome 47 之前的默认值是 manual)。

    25030
    领券