我正在使用的网站上有很多ajax调用,但出于某种原因,IE8 / 9似乎与此问题有关。
它适用于所有其他浏览器,包括IE10 / 11。
对于IE8 / 9,我已经使用Firebug进行了检查,它确实将数据发送到远程php文件,然后将其接收回来,甚至在Firebug控制台中正确显示HTML,但在目标标记处给出了空白
我也尝试输出纯文本,但没有用。
我查了一下,发现了其他一些关于Ajax调用的IE8 / 9问题,但不是这个问题。
这是ajax调用:
$(document).ready(function(){
$(".hook").change(function(){
pass_id=(this.value);
var seltop = $(this).attr('id');
var selbot = "";
var lastchar = seltop.slice(-1);
var url = "url";
if ( seltop.substring(0,1)=="b"){
selbot = "model" + lastchar;
url = "select_model.php";
}
else {selbot = "version" + lastchar;
url = "select_version.php" ; }
$.ajax({
type: "POST",
dataType:"html",
url: url,
beforeSend: function () {
$("#"+ selbot).html("<option>Loading ...</option>");
},
data: {passval:pass_id, pass2:selbot},
success: function(data){
$("#"+ selbot).html(data);
}
});
});
});
这是远程php文件的输出:
<select id = "<?php echo $model ; ?>" name="model_id" >
<option value="">Modèle</option>
<?php
while ($r= $stmt->fetch(PDO::FETCH_ASSOC)) {
$out="<option value='".htmlentities($r['model_id'], ENT_QUOTES, 'UTF-8')."'>".htmlentities($r['model'], ENT_QUOTES, 'UTF-8')."</option>";
echo $out;
}
?>
</select>
上面的典型输出如下:
<select id = "model9" name="model_id" >
<option value="">Modèle</option>
<option value='96'>Cruze</option>
</select>
目标标记如下所示:
<td class="trim">
<div class="comp_select">
<select class="hook" name="model_id" id="model9" >
<option value="">Modèles</option></select>
</div>
</td>
我相信所有人都应该知道。
感谢您的协助。