jQuery ajax调用(.get、.post.、.load等),返回数据和IE问题

jQuery ajax calls (.get, .post., .load etc), return data and IE problem

本文关键字:返回 数据 问题 IE load 调用 ajax get jQuery post      更新时间:2023-09-26

我在使用jQuery 1.3.2 时注意到,这本身并不是一个问题

我花了相当长的时间研究、寻找并最终测试(一开始就应该这样做),以下是我的发现:

假设您有一个小文件(称之为example.php):

 <div>Hello world</div></div>

在主文件中,你进行了这个特定的调用

<div class="result"></div>
<script type="text/javascript">
$(document).ready(function(){
  $.get('example.php', function(data){
     $('.result').html(data);
  });
});
</script>

现在,这将适用于除IE8/7之外的所有浏览器(尚未在IE9上进行测试)。这是因为接收到的数据没有被解析为html,尽管它正确地接收到了它。要解决这个问题,唯一要做的就是从"example.php"文件中删除additionona标记。这将解决问题。这可能看起来很简单,但当get调用中有复杂的*.php/*.html文件时,这可能会变得非常混乱,并且是一场需要解决的噩梦。

注意:我试着在stackoverflow中搜索这个特定的问题,但没有找到确切的答案或解决方案。因此,我发布了这个特定的问题和解决方案。考虑到自己在这方面相当于一个NOOB,如果有人指出对此已经有了解释,请告诉我,我将删除此帖子。

尝试

$('.result').html("");
$('.result').append(data);

它可能会删除无效的标记但是考虑将iframe用于容器.result

如果您需要使用jQuery对ajax调用进行更多控制,则应该使用$.ajax调用本身并操作参数。具体设置dataType:为"text"

http://api.jquery.com/jQuery.ajax/