javascript - jQuery AJAX 从文件中检索 SVG - 错误 : 'not well-formed'

标签 javascript jquery ajax svg

我已经使用 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 作为默认值,所以只需使用普通写法并指定 dataType : 'html' 这现在与 svg 兼容。

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

关于javascript - jQuery AJAX 从文件中检索 SVG - 错误 : 'not well-formed' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32297312/

相关文章:

jquery - 使用asp.net mvc和jquery时在哪里形成html?

Javascript 说对象是一个字符串,不允许我访问它的键值(请求 promise )

javascript - 在对象中查找值 - JQuery

javascript - 当我在javascript中按下新字符时如何替换最后一个特殊字符

Javascript 代码在模式关闭时不执行

jquery - 有 RoR 或 JQuery 的绘图插件吗?

javascript - 全局 ajax 处理程序 jquery

php - Symfony Controller 应该返回响应

javascript - 在谷歌地球中移动 3d 模型?

javascript - 用 javascript 创建的基本计算器..使用警报告诉用户任何错误。可能的错误包括: