Internet Explorer对相同的<object> svg进行HEAD和GET请求

时间:2017-06-07 23:45:42

标签: svg http-headers httprequest internet-explorer-11

我的MVC项目中有一个外部svg文件,如下所示:

<object id="demo" type="image/svg+xml" data="/Content/images/demo.svg" style="width: 100%; height: 100%; display:block; right:0; position:absolute "></object>

在FF,ME和Chrome中只有GET请求,但如果我在IE 11中打开我的项目,它会同时发出HEAD和GET请求。我无法找到如何避免。这是正常的吗?还是我有麻烦了?说麻烦,因为svg文件大小约为4.5 Mb。网络监视器看起来像:

File     Protocol  Method    Type         Transferred   Cause 
---------------------------------------------------------------
demo.svg  HTTP/2    HEAD  image/svg+xml     4.55 MB       -
demo.svg  HTTP/2    GET   image/svg+xml     4.55 MB    document

UPDATE-解决方法:

好吧,我找到了一个奇怪的方法。事实上,在尝试获取DOM元素时有点滞后,但仍然比每次访问下载额外4.5Mb更好,对吗?

我通过XMLHttpRequest对象删除了对象元素,加载的svg文件,并使用responseText(将整个svg文件作为文本返回)属性设置div的内容。在呼叫功能之前添加的加载图像不可避免地说:&#34;嘿,它会滞后一段时间,不用担心。&#34;

顺便说一句,我尝试使用Blob对象为<object>元素的数据属性创建网址,但它在<object>的IE浏览器中不起作用。

我仍然想知道如何在IE中阻止HEAD请求。

1 个答案:

答案 0 :(得分:0)

这是因为<object>。请尝试使用<img>

<img src="/Content/images/demo.svg" style="width: 100%; height: 100%; display:block; right:0; position:absolute ">