Seadragon deepzoom放置文件

时间:2011-06-30 18:28:36

标签: javascript deepzoom seadragon

我创建了一个deepzoom图像,当图像文件放在本地时,我可以使用以下代码显示它:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

<head>
    <style type="text/css">
        body {
            margin: 0px;
            font-family: Verdana;
            line-height: 1.25em;
        background-color:#000000; 
        }

    </style>

    <script type="text/javascript" src="http://seadragon.com/ajax/0.8/seadragon-min.js"></script>
    <script type="text/javascript">
        var viewer;

        function init() {
            viewer = new Seadragon.Viewer("container");
            viewer.openDzi("spider.xml");
        viewer.setFullPage(true);
        }

        Seadragon.Utils.addEvent(window, "load", init);
    </script>
</head>

<body>
<div id="content">

    <div id="container">
    </div>


</div>
</body>

</html>

但是当我将图像和xml文件上传到http://foto.qaz.dk

并将以下代码viewer.openDzi("spider.xml");更改为viewer.openDzi("http://foto.qaz.dk/spider.xml");

我从seadragon收到一条错误消息“嗯,这似乎不是一个有效的深度缩放图像”

我做错了什么?

2 个答案:

答案 0 :(得分:1)

见这篇文章:

http://dragonosticism.wordpress.com/2008/11/25/seadragon-ajax-and-cross-site-scripting/

你遇到了一个跨脚本的javascript问题。您需要将脚本移动到远程主机上或重新考虑。

答案 1 :(得分:0)

你控制foto.qaz.dk吗?如果是这样,设置适当的CORS标头,将XML作为字符串下载并将所述字符串传递给openDzi调用作为第二个参数。有关CORS的更多信息:http://en.wikipedia.org/wiki/Cross-origin_resource_sharing

旧版浏览器不支持CORS,但由于您正在编写基于seadragon的应用程序,因此假设您只期望使用现代浏览器。见:http://caniuse.com/#feat=cors