我正在为 Firefox 做一个扩展,我会接收对 URL 的调用,因为当运行对 URL 的调用时,我可以捕获 Firefox 中的 http 请求。
例如在 google chrome 中的事件:chrome.webRequest.onHeadersReceived.addListener (
最佳答案
使用普通的XMLHttpRequest
,当从某些chrome特权(系统主体)位置运行时,允许访问所有资源而不遵守同源策略,就像SDK 请求一样
模块不遵守它。
SDK:在 lib/模块中通过
获取const {XMLHttpRequest} = require("sdk/net/xhr");
XUL 覆盖/窗口、ChromeWorker:已经有一个全局
XMLHttpRequest
构造函数。- JS代码模块等:
Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"]. createInstance(Components.interfaces.nsIXMLHttpRequest);
从那里您可以使用onreadystatechange
来查找HEADERS_RECEIVED
的.readyState
。请参阅XMLHttpRequest docs .
要让 Cookie 为具有拒绝第三方 Cookie 的用户工作,您需要使用 forceAllowThirdPartyCookie
在 SDK 或其他方式中:
if (xhr_instance.channel instanceof Components.interfaces.nsIHttpChannelInternal)
xhr_instance.channel.forceAllowThirdPartyCookie = true;
关于firefox - Firefox 中的 chrome.webRequest.onHeadersReceived.addListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13936249/