我有两个页面,我使用 AJAX 来完成一些任务而不刷新页面。问题是当我使用 Internet Explorer 时,我得到的值为“?”。我尝试做的是有一个目录,当用户点击一个字符时,另一个页面正在执行 SQL 任务,第一页显示结果。
第一页:
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script>
function loadXMLDoc(myLink)
{
alert ("OK");
var xmlhttp;
alert (myLink);
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4)
{
document.getElementById("information").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","select.php?data=" + myLink,true);
xmlhttp.send();
}
</script>
</head>
<body>
<center>
<font size = "4">
<a href = "#" onClick = "loadXMLDoc('Ι'); return false;">Ι </a>
</font>
</center>
<div id = "information">
</div>
</body>
</html>
第二页:
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<?php
//var_dump($_GET);
//exit();
session_start();
$find = $_GET["data"];
$find = iconv("utf8", "utf8", $find);
echo "New find = " . $find;
$find = iconv("utf8", "utf8", "Ι"); //Greek character
echo "<br/>Newest find = " . $find;
?>
第一个“echo”将打印一个问号(“?”),而第二个将打印正确的字符。该问题仅出现在 Internet Explorer 上,它适用于任何其他问题。如果我使用“var_dump”,我会得到:
Internet Explorer:array(1) { ["data"]=> string(1) "?" }
Chrome 和 Mozilla:array(1) { ["data"]=> string(2) "Ι" }
AJAX 完全没有问题。
请问有什么帮助吗?