Javascript 为什么IE11无法发送post表单?
更多细节 我使用一个简单的post Ajax调用(使用Jquery,但也使用原生XMLhttpRequest,表单编码为url编码)Javascript 为什么IE11无法发送post表单?,javascript,ajax,internet-explorer,Javascript,Ajax,Internet Explorer,更多细节 我使用一个简单的post Ajax调用(使用Jquery,但也使用原生XMLhttpRequest,表单编码为url编码) myPost: function(url,form,doneCallback,failedCallback){ var mypost = new XMLHttpRequest(); mypost.onreadystatechange = function() { if (mypost.readyState === 4){
myPost: function(url,form,doneCallback,failedCallback){
var mypost = new XMLHttpRequest();
mypost.onreadystatechange = function() {
if (mypost.readyState === 4){
doneCallback(mypost);
}
};
mypost.onerror = function() {
failedCallback(mypost);
};
mypost.open('POST',url,true);
mypost.setRequestHeader('Content-Length', result.length);
mypost.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
mypost.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
mypost.setRequestHeader('Connection','close');
mypost.send(form);
},
在这两种情况下,代码都可以在win 8.1上的Chrome、Safari、Firefox和IE 11上正常运行,或者在VMWare Fusion上作为VM运行win 7,因此在安装了最新win 8.1更新的Mac OsX 10.9.2上运行。但是,一旦此代码在本机windows 8.1版本和IE上运行,并且在操作系统和IE上具有相同版本,帖子就会忘记将e post有效负载,无论我是否将上述标题属性放入
是的,本机win 8.1上的chrome浏览器正确地将有效负载放到服务器上,而本机IE 11没有将有效负载放到服务器上。接收服务器基于linux的restlet缺少指定资源的有效负载,因此在应用层进一步返回“500”状态
在本机和虚拟机上,IE的配置肯定存在一些差异。就我所见,这与类似问题所描述的有所不同
顺便说一句,在同一本机windows 8.1上,一些帖子正在处理网页上已经创建的表单,而上面的表单日期只需填写为。
表单='options='+encodeURIComponent(选项)
你知道不同的行为是在哪里产生的吗
谢谢
mypost.setRequestHeader('Content-Length', result.length);
mypost.setRequestHeader('Connection','close');
这些代码行只在FireFox中对我有效,如果我删除这两行代码,我的代码就在IE11中有效。我和你一样痛苦……我也有同样的问题。你做得对吗?我正在考虑改变我们的整个系统,将所有正文内容推送到URL参数中,然后在服务器端读取它们……但天哪,这有多混乱!@p呃,我还没有找到答案,因为解决方案的需求已经迫在眉睫了。