在关联数据上下文中,我将我的 openseadragon 客户端指向将响应 303 重定向的资源。如果 OSD 的请求有一个标头“Accept: image/*”(几乎所有的 '*'),重定向将指向一个 jpeg,一切都很好。这是它在谷歌浏览器中的工作方式。
但是,在 Firefox 中,请求似乎以某种方式具有标头“Accept: */*”。至少这就是我解释 Firefox 开发者工具网络面板输出的方式。这导致最后的资源重定向到一个 html 页面,当然,OSD 不能呈现为图像。
这怎么可能发生?
我在网页中嵌入 OSD 的方式是这样的:
var Imageviewer = OpenSeadragon({
debugMode: false,
id: "contentDiv",
prefixUrl: "resources/img/SeaDragonImages/",
showNavigator: true,
autoHideControls: false,
autoResize: true,
springStiffness: 10,
preserveViewport: true,
// ajaxHeaders: {'Accept: image/jpeg'},
tileSources: null // sources are (re-)loaded when pageNumbers are clicked
});
$(function(){
$(".pageNo").click(function(event){
event.preventDefault();
Imageviewer.open({
type: 'legacy-image-pyramid',
levels: [{ url: $(this).attr('href'), <span data-template="app:scaleImg"/> }]
});
});
});
请注意,如果我启用ajaxHeaders: {'Accept: image/jpeg'},
当前已注释掉的,我会得到一个 Accept 标头,但它包含各种文本/hmtl;应用程序/xhtml 等。