首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript XMLHttpRequest.onreadystatechange

JavaScript XMLHttpRequest.onreadystatechange
EN

Stack Overflow用户
提问于 2013-05-04 00:30:09
回答 1查看 23.4K关注 0票数 6

我正在尝试执行一些AJAX,并且需要知道为什么这段代码没有触发一个完整的或错误的警报。我在Mozilla Firefox 20.0.1

请注意

这个代码正在更新数据库(我有一个select语句读取确切的记录,验证它正在更新),我只是不知道为什么在响应完成后我无法得到警报。

我已经声明了这些全局变量(在javascript页面的顶部)。

代码语言:javascript
复制
var AjaxEnginePage;
var ClientInfoPage;
var XMLHTTP;
AjaxEnginePage = "AjaxEngine.aspx";
ClientInfoPage="getClientInfo.aspx";

创建连接。

代码语言:javascript
复制
 //Creating and setting the instance of appropriate XMLHTTP Request object to a “XmlHttp” variable  
function CreateXMLHTTP()
{
try
{
    XMLHTTP = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
    try
    {
        XMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
    } 
    catch(oc)
    {
        XMLHTTP = null;
    }
}
//Creating object in Mozilla and Safari 
if(!XMLHTTP && typeof XMLHttpRequest != "undefined") 
{
    XMLHTTP = new XMLHttpRequest();
}
}

捆绑连接:

代码语言:javascript
复制
function btnUpdateMe_OnClick() {
var me = encodeURIComponent(document.getElementById("MeTextBox").value);  

// construct the URL
var requestUrl = AjaxEnginePage + "?Action=UpdateMe&Me=" + me;

CreateXMLHTTP();

// If browser supports XMLHTTPRequest object
if(XMLHTTP) 
   {
    //Setting the event handler for the response
    XMLHTTP.onreadystatechange = handleStateChange(me);

    //Initializes the request object with GET (METHOD of posting), 
    //Request URL and sets the request as asynchronous.
    XMLHTTP.open("get", requestUrl,  true);

    //Sends the request to server
    XMLHTTP.send(null);     
}

处理状态变化

代码语言:javascript
复制
 function handleStateChange(me) {
  switch (XMLHTTP.readyState) {
    case 0: // UNINITIALIZED
    case 1: // LOADING
    case 2: // LOADED
    case 3: // INTERACTIVE
        break;
    case 4: // COMPLETED
        alert("Success");
        break;
    default: alert("error");
 }

如果需要,我可以提供更多的代码。) :(谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-04 00:32:51

更改:

代码语言:javascript
复制
XMLHTTP.onreadystatechange = handleStateChange(me);

至:

代码语言:javascript
复制
XMLHTTP.onreadystatechange = function() {handleStateChange(me);};

您将onreadystatechange设置为调用函数的结果,而不是函数。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16369395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档