0

我在 Firefox 中运行 AJAX 调用时遇到了一个奇怪的问题,但在 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);
   });
});
4

3 回答 3

1

也许您返回的 HTML 无效。FF 对此没有问题,但 IE8 确实有;) 也许您忘记关闭 div?

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

于 2013-10-22T20:14:03.757 回答
0

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

我在想两件事:

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

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

来源:“控制台”是 Internet Explorer 的未定义错误

2)也许是 IE 的 AJAX 缓存问题(我不认为是因为您使用的是 post() ),请尝试将此代码放在页面顶部:

$.ajaxSetup({ cache: false });

来源:如何防止 jQuery Ajax 请求在 Internet Explorer 中缓存?

于 2013-10-22T20:10:55.173 回答
0

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

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

您有什么理由使用字符串作为“t”的键吗?

于 2013-10-22T20:14:37.293 回答