gpt4 book ai didi

javascript - chrome.webNavigation 的 onBeforeNavigate 和 onCommitted 之间的 URL 更改

转载 作者:行者123 更新时间:2023-11-27 23:46:57 50 4
gpt4 key购买 nike

使用 chrome.webNavigation API 时,以下代码(在扩展程序的后台页面中使用):

  chrome.webNavigation.onCommitted.addListener(function(data) {
console.log('onCommitted', data.tabId, data.url);
});
chrome.webNavigation.onBeforeNavigate.addListener(function(data) {
console.log('onBeforeNavigate', data.tabId, data.url);
});

在导航到“http://drive.google.com”时产生此输出'

newTest.js:18 onBeforeNavigate 606 http://drive.google.com/
newTest.js:18 onCommitted 606 https://drive.google.com/

甚至在请求发送到服务器之前,Chrome 就将网址从 http 更改为 https

这种行为也出现在其他情况下。例如'http://getpocket.com ',其中还添加了一条新路径:

newTest.js:18 onBeforeNavigate 626 http://getpocket.com/
newTest.js:18 onCommitted 626 https://getpocket.com/beta/

服务器端重定向全部发生在onCommissed之后,但在这种情况下,Chrome 甚至在向服务器发送请求之前就修改了网址。

此行为是否记录在某处,以便我可以预见地处理它?<​​/p>

最佳答案

对于 Google 云端硬盘,它是 HTTP Strict Transport Security开始吧。

设置完成后,浏览器会自动将所有内容重定向到 HTTPS。

您可以在网络内部查看引擎盖下的内容,例如chrome://net-internals/#hsts

static_sts_domain: drive.google.com
static_upgrade_mode: STRICT

<小时/>

对于 Pocket,这似乎是 301 Moved Permanently 重定向。

按照设计,浏览器会永久缓存此响应(至少 Chrome does )并自动重写链接,无需访问服务器,直到清除所述缓存。

关于javascript - chrome.webNavigation 的 onBeforeNavigate 和 onCommitted 之间的 URL 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33091123/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com