3

我正在为 Firefox 做一个扩展,并且我接听了对 URL 的调用,因为在运行对 URL 的调用时,我可以在 Firefox 中捕获 http 请求。

例如在谷歌浏览器上的事件:chrome.webRequest.onHeadersReceived.addListener (

4

1 回答 1

0

使用 plain XMLHttpRequest,当从某个 chrome 特权(系统主体)位置运行时,它允许在不遵守同源策略的情况下访问所有资源,就像 SDKrequest模块不遵守它一样。

  • SDK:在 lib/ 模块中通过

    const {XMLHttpRequest} = require("sdk/net/xhr");
  • XUL 覆盖/窗口、ChromeWorker:已经有一个全局XMLHttpRequest构造函数。

  • JS代码模块等:
    Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].
      createInstance(Components.interfaces.nsIXMLHttpRequest);

从那里你可以使用来onreadystatechange寻找一个.readyStateHEADERS_RECEIVED请参阅XMLHttpRequest 文档

要让拒绝第三方 Cookie 的用户使用 Cookie,您需要forceAllowThirdPartyCookie在 SDK 中使用或以其他方式使用:

if (xhr_instance.channel instanceof Components.interfaces.nsIHttpChannelInternal)
  xhr_instance.channel.forceAllowThirdPartyCookie = true;
于 2013-08-05T22:08:27.453 回答