[英]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.