我在nsIHttpChannel
找到了referrer属性,大部分时间都可以使用这个属性,但这仅限于某些安全检查(例如,如果您从HTTPS导航到一个HTTP URL)。
我可以看到有可能获得加载上下文(nsILoadContext
),并且通过它可以找到关联窗口之类的东西,但我找不到通过这些方法查找引用者信息的方法。
所以我的问题是这个;对于那些具有引用URL但未通过nsIHttpChannel
referrer属性上的安全检查的请求,是否有办法获取引荐来源信息?
答案 0 :(得分:0)
即使在未发送docshell.internalReferrer
标头的情况下,Gecko也会将引荐来源保存在Referer
属性中。在大多数情况下,您应该能够读出这样的推荐人信息:
if (channel instanceof nsIPropertyBag)
{
try
{
referrer = channel.getProperty("docshell.internalReferrer");
}
catch (e)
{
// Internal referrer not set, fall back to the Referer header
referrer = channel.referrer;
}
}