Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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 为什么IE11无法发送post表单?_Javascript_Ajax_Internet Explorer - Fatal编程技术网

Javascript 为什么IE11无法发送post表单?

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){

更多细节

我使用一个简单的post Ajax调用(使用Jquery,但也使用原生XMLhttpRequest,表单编码为url编码)

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呃,我还没有找到答案,因为解决方案的需求已经迫在眉睫了。