首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

(急)为什么小弟我在VS2008上不能实现XMLHttpRequest对象

2012-11-15 
(急)为什么我在VS2008下不能实现XMLHttpRequest对象?各位大侠,小菜遇到一个很恼火的问题,望指教:我在VS200

(急)为什么我在VS2008下不能实现XMLHttpRequest对象?
各位大侠,小菜遇到一个很恼火的问题,望指教:
  我在VS2008环境下尝试以XMLHttpRequest对象实现局部刷新,可是在javascript中XMLHttpRequest居然是一个字段,无法实例化,更无法调用该对象的其他方法。经过多次尝试,包括判断条件格式什么的都改过无数次了,还是不行,请大侠们帮我看看,是不是要实例化这个对象需要在web.config文件下另行配置或者需要在Page指令下进行其他配置呢?
  (我这里看见的:只有ActivexObject 是一个类,其他的比如:window/XMLHttpRequest显示都是以字段德形式,最后一行xmlHttp根本没有Open()/Send()方法)
  以下是代码:

JScript code
    <script language="javascript" type="text/javascript">    var xmlHttp;    var requestType = "";        function  createXMLHttpRequest()    {x        if (ActiveXObject)a       {             xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");       }       else if (XMLHttpRequest)       {            xmlHttp = new XMLHttpRequest();       }           }        function showDB(returestedList)    {        requestType = returestedList;        createXMLHttpRequest();        xmlHttp    }            </script></head><body>    <form id="form1" runat="server">    <div>            <input id="btnOne" type="button" value="只显示第一页" onclick="return showDB('one')" /></div>    </form>    <p>        <input id="btnAll" type="button" value="全部显示" onclick="return showDB('two')" /></p></body>

  
 

[解决办法]
var xmlHttp = false;
try {
xmlHttp = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
xmlHttp = false;
}
}
}

[解决办法]
xmlhttprequest不需要配置web.config的,一些浏览器原本就支持xmlhttprequest,而不是asp.net支不支持xmlhttprequest,和asp.net无关


不过if(ActiveXObject)你这样写,在非ie浏览器下会出错,因为非ie内核浏览器并没有ActiveXObject对象,所以就出错了,导致下面的else if (XMLHttpRequest)语句不执行

JScript code
//if(ActiveXObject)//=========>>if(window.ActiveXObject)
[解决办法]
JScript code
var xmlHttp;        function createXmlHttpRequest()    {        if(window.XMLHttpRequest)        {            xmlHttp=new XMLHttpRequest();                    if(xmlHttp.overrideMimeType)                {                    xmlHttp.overrideMimeType("text/xml");                }        }        else if(window.ActiveXObject)        {            try            {                xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");               }            catch(e)            {                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");               }        }        if(!xmlHttp)        {            window.alert("你的浏览器不支持创建XMLhttpRequest对象");        }        return xmlHttp;            } 

热点排行