gpt4 book ai didi

javascript - 在 firefox 插件中监听 http 响应时识别 XHR(ajax)响应

转载 作者:行者123 更新时间:2023-11-30 10:18:15 31 4
gpt4 key购买 nike

我有一个简单的 firefox 插件 (addon-sdk),如果响应的内容类型与一组内容类型匹配,它会监听 http 响应和 block 。现在,当我对收听图像、javascript 文件和 ajax (XHR) 响应不感兴趣时​​,观察者会收听所有响应。我能否以某种方式过滤掉或至少找出响应属于 XHR 请求,这样我就不会在处理响应时浪费资源。

类似的事情可以在 chrome 扩展中实现,其中“details.type”可以是 main_frame、image、xhr 等。

httpResponseObserver =  
{
observe: function(subject, topic, data)
{

if (topic == "http-on-examine-response")
{
var channel = subject.QueryInterface(Ci.nsIHttpChannel);
var contentType;
try {
contentType = channel.getResponseHeader('Content-Type');
if (/\b(?:xml|rss|javascript|vnd|json|html|text|image|ocsp|x-shockwave-flash)\b/.test(contentType))
{
return;
}
}
catch(error) {
return;
}
}
}

最佳答案

notificationCallbacks请求nsIXMLHttpRequest接口(interface)

var isXHR;

try{
var channel = subject.QueryInterface(Ci.nsIHttpChannel);
var callbacks = channel.notificationCallbacks;
var xhr = callbacks ? callbacks.getInterface(Ci.nsIXMLHttpRequest) : null;
isXHR = !!xhr;
}
catch(e){
isXHR = false;
}

关于javascript - 在 firefox 插件中监听 http 响应时识别 XHR(ajax)响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22659863/

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