我有两条路:
a)localhost/firstapplication/
b)localhost/secondapplication/images
在第一次应用中,我向secondapplication/html/index.html
发出ajax请求。例如我获取整个responsetext。
在第二个应用程序中有一些img-tags:
<img src="../images/testpicture.png" alt="test" />
我的问题:如果我追加整个responsetext
我的浏览器正在查找图片..链接是相对的,意思是:firstapplication/images
。
但我想要第二次应用的图像。
有什么方法可以让它们变得简单吗?或者我是否必须将每个img标记中src-attributes
的所有值从"../images"
更改为"localhost/secondapplication/images/"
等修复路径?
感谢您的支持。
我正在使用prototype js 1.7
,我会优先使用此框架解决方案。谢谢!
答案 0 :(得分:0)
如果firstapplication
和secondapplication
位于不同的域中,则由于Same Origin Policy,AJAX将无法运行。因此,我没有对您的图像问题做出回应,因为一旦部署到现场,您的代码将无效。
答案 1 :(得分:0)
我看到了一些可能性
使用iframe代替AJAX。
让第二个域提供绝对网址。
在AJAX完成时操纵URL。
new Ajax.Updater('secondapplication/html/index.html', 'ELEMENT_ID', {
onSuccess: function(response){
var receiver = $(this.container.success);
var otherDomain = 'http://localhost/secondapplication/';
var selector = '[src]:not([src^=/]):not([src^=http])';
receiver.select(selector).each(function(element) {
element.src = otherDomain+element.readAttribute('src');
});
selector = '[href]:not([href^=/]):not([href^=http]):not([href^=#])';
receiver.select(selector).each(function(element) {
element.href = otherDomain+element.readAttribute('href');
});
}
});
// otherDomain must end in a solidus, /
// not tested