繁体   English   中英

jQuery AJAX从文件中检索SVG-错误:格式不正确

[英]jQuery AJAX retrieve SVG from file - ERROR: 'not well-formed'

一段时间以来,我一直在使用许多与inkscape不同的svg,并使用.load到特定的容器元素。 我最近尝试将负载更改为get(AJAX),主要是为了能够添加svg。

这项工作很完美,svg像应该做的那样放在元素的前面,问题是当我使用ajax get方法检索svg文件时,出现控制台错误“格式不正确”。 我不喜欢忽略错误,但这确实会干扰页面内容。

不要认为这是svg的问题,因为它工作正常,只是为了确保我检查了svg中包含的所需名称空间(尽管使用了标准保存中的inkscape默认元数据)。 例如:

<svg      
 xmlns="http://www.w3.org/2000/svg"
 xmlns:xlink="http://www.w3.org/1999/xlink"
 xmlns:ev="http://www.w3.org/2001/xml-events">

原始加载方法(无错误):

$('.container-svg').load("img/floorplan/"+ source +".svg", null, function() 
{
   //other things happen
});

新的Ajax方法(错误):

$.get("img/floorplan/"+ source +".svg").done(function( data )
{
    $(".container-svg").prepend($(data).find("svg"));
    //other things happen
});
  • 这与svg文件中的元数据有关吗?
  • 应该/如何纠正错误?

弄清楚了...。$ .get()是$ .ajax()的简写版本,但我认为它使用XML作为默认数据类型。 我认为它将默认使用HTML,因此只使用了longhand并分配了dataType:'html'现在与svg兼容。

$.ajax(
{
    url: "img/floorplan/"+ source +".svg" ,
    dataType: 'html',
    type: 'GET',
    success: function(data) 
    {         
        $(".container-svg").prepend(data);
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM