来自 xmlHttpRequest 的 IE11(windows 8 版本 11.0.9600.17937)上的 $_REQUEST 数组为空,适用于 Firefox 和 Chrome

$_REQUEST array empty on IE11 (windows 8 version 11.0.9600.17937) from xmlHttpRequest, works on Firefox and Chrome

我仔细查看了 google 和堆栈溢出的历史记录,但没有解决我的问题。

我的网站应用程序有登录功能,可以在 Firefox 和 Chrome 上正常使用。它也适用于 IE 的每个版本,但有一个特定版本:11.0.9600.17937 适用于 windows 8。我的客户是通知我这一点的人,因为我有 windows 7 而没有我的 IE11 版本出现问题,因此我无法在不要求他们尝试的情况下针对实际问题进行测试。

从我的调试来看,我的变量似乎没有通过 xmlhttprequest 传递到登录页面,因为它没有通过我的验证来测试变量是否被传入。验证再次通过 Firefox 和 Chrome.

这是我在 Javascript 中的 xmlhttprequest:

function sendUser(form)
{
    var busloginID=document.forms[0].busloginID.value;
    var buspassword=document.forms[0].buspassword.value;
    var userData = [busloginID, buspassword, 'BUS'];

    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest();
    } 
    else 
    { 
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange=function() 
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) 
        {
            document.getElementById("login").innerHTML=xmlhttp.responseText;
            if(document.getElementById("loginSuccess"))
            {
                form.submit();
            }
        }
    }
    xmlhttp.open("GET","login.php?userData="+userData,true);
    xmlhttp.send();
}

这是在 login.php 上接收 xmlhttprequest 的代码:

$data = $_REQUEST['userData'];
$userDataArray = explode(",", $data);
$loginID=$userDataArray[0];
$password=$userDataArray[1];
$originFlag=$userDataArray[2];

这些变量没有在这个版本的 IE11 上传递,只有这个特定的版本。

感谢任何建议,我觉得我已经尝试了一切。

谢谢

杰克

我在 login.php 上请求变量时用 $_GET 代替了 $_REQUEST,遇到问题的用户不再遇到问题。不确定为什么会修复它,所以这是客户端的替换或用户错误。