Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更新在IE8上不起作用_Javascript_Ajax_Jsp_Prototypejs - Fatal编程技术网

Javascript 更新在IE8上不起作用

Javascript 更新在IE8上不起作用,javascript,ajax,jsp,prototypejs,Javascript,Ajax,Jsp,Prototypejs,我有一个登录表单,用户可以输入usrname/password并单击该表单上的登录按钮向服务器发送请求 “登录”按钮调用名为submitLoginFormIntoDivAndReload的函数,函数submitLoginFormIntoDivAndReload调用另一个名为submitFormObjIntoDivAndReload的函数 以下是这些功能的详细信息: function submitLoginFormIntoDivAndReload(servletUrl, formObj, divI

我有一个登录表单,用户可以输入usrname/password并单击该表单上的登录按钮向服务器发送请求

“登录”按钮调用名为submitLoginFormIntoDivAndReload的函数,函数submitLoginFormIntoDivAndReload调用另一个名为submitFormObjIntoDivAndReload的函数

以下是这些功能的详细信息:

function submitLoginFormIntoDivAndReload(servletUrl, formObj, divId) {

//var formObj = document.getElementById(formId);
var shortUserName = formObj.shortusername.value;
alert("starting userName: " + shortUserName);
var organization = formObj.organization.value;
alert("organization: " + organization);
formObj.username.value = createLdapString(shortUserName, organization);
alert("ending userName: " + formObj.username.value);
var loggingInContent = "<table><tr><td width='600px' align='center'><p>logging in</p></td></tr></table>"
document.getElementById(divId).innerHTML = loggingInContent;

submitFormObjIntoDivAndReload(servletUrl, formObj, divId);

}

function submitFormObjIntoDivAndReload(url, formObj, divId) {
alert('Form object: ' + formObj);
alert('url: ' + url);
alert('divId: '+divId);
var myRequest = new Ajax.Updater(divId, url,
        {   method: 'post',
            parameters: Form.serialize(formObj),
            onSuccess: function(reponse) {
                window.location.reload();
            }
        });
alert("after update");
}
这段代码在firefox上运行得非常好。然而,它在IE上不起作用

在IE上,我可以获取所有调试警报。然而,似乎Ajax.Updater没有向服务器发送请求,我在服务器端看不到任何输出

在FireFox上,我也可以得到所有的修改。更新程序确实向服务器发送了一个请求,因为我可以在服务器端看到预期的输出

我在网上搜索了一下,有人说IE有缓存问题: 但问题似乎只针对GET方法,而不是POST方法。我正在使用POST方法。我还在表单中添加了一个假输入,它仍然不起作用

有人知道吗?多谢各位


顺便说一句,我正在使用prototype 1.5.1。

无论是POST还是GET,您的响应时间都将非常接近。我想说,在服务器响应之前,您仍在经历一个持续的竞争条件


我想看看关于防止比赛条件的问题。我找到的许多解决方案中有一种是设置一个循环,每十毫秒检查一个值,否则等待。

为什么要使用这样一个旧版本的Prototype?1.7已经发布了一段时间,有很多改进。我改为1.7。然后它在IE上工作过一次,但不再工作了。这真的是缓存问题吗?可能。在每次尝试之前,您是否尝试过清除浏览器的缓存?如果可以,是否可以随服务器的响应发送缓存预防标头?缓存控制:没有缓存,必须重新验证并过期:Sat,1997年7月26日05:00:00 GMT应该做这个游戏吗?我认为问题在于请求从未发出,我无法在服务器端看到预期的结果。