jQuery AJAX调用适用于Firefox,但不适用于IE - 返回有效响应

时间:2013-10-22 19:33:17

标签: javascript jquery html ajax internet-explorer

我在AJAX调用中遇到一个奇怪的问题,它在Firefox中工作,但在IE中却没有。当我添加IE alert()时,我看到了返回的内容,但它不希望使用jQuery .html()命令插入。这是我的示例代码:

$(document).on('click','.OpenForm',function(e) {    
    e.preventDefault();
    var FormControl = $(this).attr('id');       //ex: id=FormView_12 or FormEdit_12
        FormControl = FormControl.split('_');
    var FormControlType = FormControl[0];
    var FormID = FormControl[1];
    $.post("./includes/Getform.php", { "t" : "view" , FormID : FormID })  
     .done(function(data) {
      if (data.length>0){
        data = data.replace(/(\r\n|\n|\r)/gm,"");
        //alert(data); ---THIS ALERTS THE RESPONSE IN IE8
        //console.log(data); --- THIS SHOWS RESPONSE IN FF
        $('.ProjectContentLoad').html(data).show();
      }
   })
   .fail( function(xhr, textStatus, errorThrown) {
      error_handling(xhr.responseText);
   });
});

3 个答案:

答案 0 :(得分:1)

也许您返回的HTML无效。 FF没有问题,但IE8肯定会;)也许你忘了关闭一个div?

以下帖子显示了一些人遇到完全相同的问题:jQuery AJAX GET html data IE8 not working

答案 1 :(得分:0)

您的JS控制台上是否有任何错误消息?你能说明什么是数据内容吗?

我正在考虑两件事:

1)如果您未在IE8中运行开发工具,则未定义console.log()。要解决此问题,请将此代码放在页面顶部:

<script type="text/javascript"> if (!window.console) console = {log: function() {}}; </script>

来源:'console' is undefined error for Internet Explorer

2)可能是IE的AJAX缓存问题(我不认为因为你使用的是post()),试着把这段代码放在你的页面顶部:

$.ajaxSetup({ cache: false });

来源:How to prevent a jQuery Ajax request from caching in Internet Explorer?

答案 2 :(得分:0)

只是在黑暗中拍摄,但IE不会被你发送的JS对象弄糊涂了吗?

{ "t" : "view" , FormID : FormID }

你是否有任何理由将字符串用作“t”的键?