小编Jul*_* R.的帖子

jQuery .ajax .load .get x(h)tml相关错误("不匹配的标记,预期:</ br>")

我的问题其实很简单,但我需要有深入了解的人.想象一下以下简单的任务:将一些外部html数据加载/解析为当前html文件的元素.

假设这是我们想要检索的外部文件的内容:

<div id="element">
  <img src="test.jpg"><br>
  lorem ipsum
</div>
Run Code Online (Sandbox Code Playgroud)

这是使用jQuery .load的代码

$("#div_in_mother_html").load("external.html #element");
Run Code Online (Sandbox Code Playgroud)

像魅力一样工作.
但是在控制台中查看,我发现以下错误:

1. mismatched tag. Expected: <br />
2. mismatched tag. Expected: <img />
Run Code Online (Sandbox Code Playgroud)

这是为什么?

很明显,.load是jquery中.ajax的简写,据我所知,这是一个跨浏览器的XMLHttpRequest.这可能会导致标签问题不匹配,因为HTML标签不会关闭,与XHTML不同:

HTML - <img src="test.jpg"><br>
XHTML - <img src="test.jpg" /><br />


下一次尝试

好吧我说,必须可以解析XML而不是HTML.是的,jQuery的文档也是这样说的.我从.load切换到更高级的.ajax并尝试手动设置数据类型:

$.ajax({ type:'GET', url:'ajax.txt', contentType: "text/plain; charset=utf-8", 
 dataType:'text', success:function(data){ 
    $('#div_in_mother_html').html(data); } 
});
Run Code Online (Sandbox Code Playgroud)


它再次起作用......但是同样的静音错误出现在控制台中.


在本地环境中的Firefox 32浏览器控制台中看到错误.

ajax jquery parsing load get

1
推荐指数
1
解决办法
1620
查看次数

标签 统计

ajax ×1

get ×1

jquery ×1

load ×1

parsing ×1