首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TWebBrowser:从流中加载HTML时设置referer header

TWebBrowser:从流中加载HTML时设置referer header
EN

Stack Overflow用户
提问于 2014-04-11 04:08:04
回答 1查看 449关注 0票数 2

我正在通过Delphi XE3中的TWebBrowser访问Google Maps API。

最初,通过Navigate2将TWebBrowser加载到“about:blank”。然后,在代码中动态生成要呈现的超文本标记语言,并通过流将其加载到TWebBrowser中。

这一切都很好,只要我使用免费的地图API。要使用Maps for Business,对API的请求必须来自预注册的URL,Google根据GET请求中的referer标头确定,GET请求通常是“浏览器”在加载Javascript时发送的。即使我在初始Navigate2调用中指定了referer标头,但当加载并呈现生成的HTML,并且TWebBrowser发送了对API Javascript的GET请求时,该请求不包含referer标头,因此该请求被拒绝。我确认没有使用Fiddler发送referer报头。

看起来TWebBrowser只在实际导航到网址时发送referer头,而不是在发送GET请求时发送,就像从脚本元素加载API一样。

我不能使用Navigate2加载“网页”,因为没有服务器可以加载它。

有没有办法强制TWebBrowser在发出GET时包含一个特定的referer头,当它呈现的超文本标记语言从流中加载时?经过几个小时的搜索,我没有找到任何可以做到这一点的线索。

EN

回答 1

Stack Overflow用户

发布于 2014-04-11 05:37:59

在将HTML动态加载到TWebBrowser之前,请修改HTML以将<base href="...">标记插入到HTML的<head>中,以指示该HTML最初的来源。然后,该URL用于解析相对URL、建立Referer等。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22998013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档