Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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 AJAX未通过IE7/IE8中的POST变量_Javascript_Ajax_Internet Explorer_Post - Fatal编程技术网

Javascript AJAX未通过IE7/IE8中的POST变量

Javascript AJAX未通过IE7/IE8中的POST变量,javascript,ajax,internet-explorer,post,Javascript,Ajax,Internet Explorer,Post,请注意:回答“使用jquery”或“使用(插入知名框架)”没有帮助。像jquery这样的框架包含了大量额外的代码,这对于我现在所做的工作来说根本不是必需的但是,你可以包括一个来自谷歌的,是的,可能是这样,但我更喜欢保留我自己的代码。考虑到这一点,让我们继续讨论这个问题 我有一个ajax调用,它不会在IE7/IE8上传递POST VAR,但只在偶尔的情况下传递。它看起来是非常随机的,而且大部分时间它确实有效 我已经看过jquery,但与这个定制的jquery相比,它的工作方式并没有什么不同 以下是

请注意:回答“使用jquery”或“使用(插入知名框架)”没有帮助。像jquery这样的框架包含了大量额外的代码,这对于我现在所做的工作来说根本不是必需的但是,你可以包括一个来自谷歌的,是的,可能是这样,但我更喜欢保留我自己的代码。考虑到这一点,让我们继续讨论这个问题

我有一个ajax调用,它不会在IE7/IE8上传递POST VAR,但只在偶尔的情况下传递。它看起来是非常随机的,而且大部分时间它确实有效

我已经看过jquery,但与这个定制的jquery相比,它的工作方式并没有什么不同

以下是ajax函数:

function GetXmlHttpObject(handler){ 
  var objxml = null;
 if(handler==null) {
  handler = function() {}
 }

   var ProgID = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];              

     try {  
         objxml = new XMLHttpRequest();  
     }  
     catch(e) {  
         for (var i = 0; i < ProgID.length; i++){  
             try {  
                 objxml = new ActiveXObject(ProgID[i]);  
             }  
             catch(e) {  
                 continue;  
            }  
         }  
     } 
 objxml.onreadystatechange=handler;

     return objxml;  
}

我看了一下jquery,看不出它的工作方式与这个定制的有多大区别。

使用。它简洁、不言自明,适用于所有浏览器。

虽然没有太多帮助,但这篇文章似乎非常详细:

如果参数只是有时无法发送,问题可能出在以下几行:

params = "object_type="+object_type+"&object_id="+object_id;
参数没有被转义。试试这个:

params = "object_type=" +
         encodeURIComponent(object_type) +
         "&object_id=" +
         encodeURIComponent(object_id);

我在jquery中遇到了类似的问题,post参数无法通过。这更多地与asp.net读取post参数的方式有关。
下面的文章演示了如何直接从请求的输入流中提取post参数。希望它能有所帮助

我记不起曾经见过像“application/x-www-form-URLencoded”这样的大写字符的内容类型,我也不知道它是否符合规范。但是,我见过PHP因为请求中缺少内容类型头而忽略帖子。(由于一名代理人决定将其排除在外)

PHP忽略它无法识别的任何内容类型。这将修复任何问题的可能性很小,但您可以尝试将
URL
更改为
URL

试试
在php中,若要获取ASP.net guy之类的输入变量,请给出处理程序函数的代码示例。如果“If Modified Since”是POST的有效标头,可能应该将其删除。@naikus yes如果在Http1.1规范中进行了修改,一个简单的谷歌会为您找到它。@David:您的参数有时可能包含需要URL编码的数据吗?另外,关于你问题中关于jQuery的注释;jQuery实际上默认在原生XMLHttpRequest对象上使用ActiveX实现。也许这样做可以解决您的问题。@David:您能将失败的情况与特定的用户、值、浏览器版本或代理联系起来吗?事情很少是随机的。看看这个,发送请求的实际方式和我现在的方式没有什么不同。唯一的区别是他们把它放在了一个类中。澄清一下:我并不是说你在使用PHP,问题就在这里,只是端到端链中有几个部分可能会进行一些健全性检查(例如代理)并造成麻烦。
params = "object_type=" +
         encodeURIComponent(object_type) +
         "&object_id=" +
         encodeURIComponent(object_id);