如何覆盖javascript对ActiveX和Java Applet的调用,以便我可以更改资源路径?

时间:2009-11-03 17:36:04

标签: javascript activex applet override

我开发了一个反向代理,目前只处理来自远程应用程序的“html / text”响应,其他所有内容(图像,javascript等)都是通过未经修改的方式传递的。我遇到的问题是当远程站点包含动态地将java applet或activex控件插入到页面中的javascript时,因为这是在我处理了响应并更改了所有URI之后发生的。

例如:

导航到反向代理以访问remotesite18:

http://reverseproxy.tld/remotesite18

反向代理然后调用remotesite18:

http://remotesite18.mysites.tld/

响应中包含HTML中已修改的链接: 从

<a href="/images/banner.jpg" /> 

<a href="http://reverseproxy.tld/remotesite18/images/banner.jpg" />

但是当javascript动态插入相对路径为:

的applet标记时会发生什么
test.jar

请求可能会以

的形式返回
http://reverseproxy.tld/test.jar

产生404.我需要将其路由到:

http://reversproxy.tld/remotesite18/test.jar

所以我需要插入自己的JavaScript来重新路由这些请求。我知道Glype在某种程度上做到了这一点,但我无法确定如何。

1 个答案:

答案 0 :(得分:1)

当您处理响应时,不是单独修复所有URI,您是否可以不在文档的头部添加单个基本URI?

<base href="http://reverseproxy.tld/remotesite18/" />

然后,这将允许动态处理的任何相对URI针对您的反向代理正确解析。它还有一个好处,即您需要更少的处理来修改文档。