来自 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,遇到问题的用户不再遇到问题。不确定为什么会修复它,所以这是客户端的替换或用户错误。
我仔细查看了 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,遇到问题的用户不再遇到问题。不确定为什么会修复它,所以这是客户端的替换或用户错误。