jQuery的阿贾克斯.load。获得X(H)TML相关的错误(“不匹配的标签,预计: “)(

2019-10-20 14:53发布

我的问题其实很简单,但尽管如此,我需要有个深入的知识在这里。 想象一下下面这个简单的任务:加载/解析某些外部HTML数据到当前的HTML文件的元素。

比方说,这是外部文件的内容,我们要检索:

<div id="element">
  <img src="test.jpg"><br>
  lorem ipsum
</div>

这是使用jQuery .load代码

$("#div_in_mother_html").load("external.html #element");

就像风情万种。
但看在控制台中,我看到了以下错误

1. mismatched tag. Expected: <br />
2. mismatched tag. Expected: <img />

这是为什么?

嗯,很显然,.load是jQuery中为阿贾克斯的简写,也就是,据我了解,跨浏览器的XMLHttpRequest。 这可能会导致不匹配的标签problemss,对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); } 
});


再次,它的工作原理......但同样无记载错误在控制台中显示出来。


错误在本地环境火狐浏览器32台看到。

Answer 1:

我的猜测是,当你从文件系统工作时提出要求,这是由于某种原因解析为XML。 你真的不应该永远从文件系统测试AJAX反正因为文件系统不会返回所有,你会从一个真正的服务器获得相同的标题。 解决将是安装在本地主机上运行的本地Web服务器。



文章来源: jQuery .ajax .load .get x(h)tml related error (“mismatched tag, expected:
”)