繁体   English   中英

JQuery AJAX不会在Internet Explorer上显示

[英]JQuery AJAX won't display on Internet Explorer

我有一个选择和更新SQL表的表单。

JS:

<script>  
$(document).ready(function(){  
  function fetch_data()  
  {  
       $.ajax({  
            url:"select.php",  
            method:"POST",  
            cache:"false",
            success:function(data){  
                 $('#live_data').html(data);  
            }  
       });  
  }  
  fetch_data();  

  function edit_data(id, text, column_name)  
  {  
       $.ajax({  
            url:"edit.php",  
            method:"POST",  
            cache:"false",
            data:{id:id, text:text, column_name:column_name},  
            dataType:"text",  
            success:function(data){  
                 $('#updatesucess').html(data);  
                  $('#updatesucess').delay(2000).fadeOut(300);
            }  
       });  
  }  
  $(document).on('blur', '.OilProd', function(){  
       var id = $(this).data("id2");  
       var OilProd = $(this).text();  
       edit_data(id, OilProd, "OilProd");  
    });  
  });  
 </script>

形成:

<html>  
  <head>  
       <meta http-equiv="X-UA-Compatible" content="IE=edge" />
       <title>Live Table Data Edit</title>  
       <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />  
       <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 
       <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>  

  </head>  
  <body>  
       <div class="container">  
            <div class="row">
            <div class="col-lg-12">
                <div class="panel panel-default">
                    <div class="panel-heading">
                        <strong>Kodiak Daily Production
                    </strong>
                    </div>
                    <!-- /.panel-heading -->
                    <div class="panel-body">


            <div class="table-responsive">  
                 <div id="updatesucess"></div>
                 <p></p>
                 <div id="live_data"></div>                 
            </div>  
       </div> <!-- close panel body --> 
       </div> <!-- panel panel-default -->
       </div> <!-- close col-lg-12 -->
       </div> <!-- close row --> 
       </div> <!-- Close Container --> 
  </body>  
</html> 

以下代码显示了Firefox和Chrome上php的内容,但不显示IE8 / 9中的内容。

我尝试了以下内容

设置缓存:“false”, async:false,从get更改为post但没有go。

我还需要做些什么才能在Internet Explorer 8-11中使用它?

更新:

在HTML中添加了以下标记,现在可以至少显示数据,但无法对表单进行任何编辑。

 <meta http-equiv="X-UA-Compatible" content="IE=edge" />

出于某种原因,Internet Explorer有时会拥有与缓存相关的生活。 如果在Internet Explorer控制台中检查网络选项卡,则会看到ajax请求的304状态(未修改)。 我有时会遇到这种情况,似乎请求被Internet Explorer阻止,并且从未到达服务器。

您可以尝试通过向ajax函数添加带随机数的get参数来解决问题。

$.ajax({  
        url:"select.php?breakcache=" + Math.random(),  
        method:"POST",  
        cache:"false",
        success:function(data){  
             $('#live_data').html(data);  
        }  
});

尽管运行IE11并指定X-UA-Compatible,您仍应检查IE正在使用的渲染模式。 特别是,检查它是否没有使用Quirks模式,因为这肯定会杀死Ajax(以及许多其他功能)。

我怀疑这可能是问题,因为您的HTML代码不包含DOCTYPE,并且缺少doctype会自动使IE跳转到怪异模式。

通过将HTML5文档类型添加到HTML文件的顶部(紧靠<html>标记上方)来解决此问题:

<!DOCTYPE html>

这应该可以解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM