首页
学习
活动
专区
工具
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)

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

3.5K50

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

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

25130

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

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

6.3K21

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

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

5.2K20

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

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

75230

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” 指令。

2.9K20

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.1K20

【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

58710

浏览器输入某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 ;

50020

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

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.1K30

反向代理攻击面 (下)

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

1.6K40

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参数作用是转换responseset-cookie headerdomain选项,由后端设置域名domain转换成你域名replacement,来保证cookie...顺利传递并写入到当前页面,注意proxy_cookie_domain负责只是处理response set-cookie头中domain属性,仅此而已。

4.7K20

一文看懂Cookie奥秘

在HTTP请求模型形式体现:ResponseSet-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.4K51

跟我一起探索HTTP-协议升级机制

如果服务器没有(或者不能)升级这次连接,它会忽略客户端发送 Upgrade 字段,返回一个常规响应:例如一个 200 OK)....允许在一个请求中使用多个 Sec-WebSocket-Extension ;结果跟在一个头文件包含了所有列出扩展一样。...如果客户端愿意,则添加它,服务器将在响应包含一个自己密钥,客户端将在向你发送升级响应之前验证该密钥。 服务器响应 Sec-WebSocket-Accept 将基于指定 key 计算值。...如果服务器确实支持请求协议版本,则响应不包含 Sec-WebSocket-Version 。...仅响应 来自服务器响应可能包含这些。 Sec-WebSocket-Accept 当服务器愿意发起 WebSocket 连接时,其包含在打开握手过程来自服务器响应消息

19920
领券