jQuery AJAX 调用在 Firefox 中有效,但在 IE 中不起作用 - 返回有效响应

jQuery AJAX call works in Firefox but not IE - valid response returned

本文关键字:有效 不起作用 IE 返回 响应 但在 Firefox AJAX jQuery 调用      更新时间:2023-09-26

我在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);
   });
});

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

下面的帖子显示了一些人有完全相同的问题:jQuery AJAX GET html data IE8 不起作用

只是在

黑暗中射击,但IE并没有被您发送的JS对象所迷惑,是吗?

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

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

您的 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 中缓存?

相关文章: