起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1479|回复: 5

[结贴] 创建xmlHttp 不成功! 请问要如何处理?

[复制链接]

311

主题

944

帖子

1708

积分

金牌会员

Rank: 6Rank: 6

积分
1708
QQ
发表于 2014-12-3 13:12:05 | 显示全部楼层 |阅读模式
在 X5 V3 中,创建xmlHttp代码如下,但创建不成功,xmlHttp.readyState 的值一直为0 (成功为4),请问要如何处理?

var xmlHttp;
//创建xmlHttp
Model.prototype.createXMLHttpRequest = function()
{
   if(window.ActiveXObject)
   {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
   }
    else if(window.XMLHttpRequest)
   {
    xmlHttp=new XMLHttpRequest();
   }
};
怒发冲冠凭栏处,潇潇雨歇,抬望眼,仰天长啸,壮怀激烈。  
三十功名尘与土,八千里路云和月,莫等闲,白了少年头,空悲切

1

主题

1222

帖子

1378

积分

金牌会员

Rank: 6Rank: 6

积分
1378
QQ
发表于 2014-12-3 13:35:41 | 显示全部楼层
请求正确返回后才会返回4
回复 支持 反对

使用道具 举报

311

主题

944

帖子

1708

积分

金牌会员

Rank: 6Rank: 6

积分
1708
QQ
 楼主| 发表于 2014-12-3 13:51:45 | 显示全部楼层
wangliang 发表于 2014-12-3 13:35
请求正确返回后才会返回4

我在X5 v3 的 .w 页面上加了一个按钮,在按钮的点击事件调用的

不知需要怎样发出请求,这里又没有 form

怒发冲冠凭栏处,潇潇雨歇,抬望眼,仰天长啸,壮怀激烈。  
三十功名尘与土,八千里路云和月,莫等闲,白了少年头,空悲切
回复 支持 反对

使用道具 举报

1

主题

1222

帖子

1378

积分

金牌会员

Rank: 6Rank: 6

积分
1378
QQ
发表于 2014-12-3 14:02:20 | 显示全部楼层
回复 支持 反对

使用道具 举报

311

主题

944

帖子

1708

积分

金牌会员

Rank: 6Rank: 6

积分
1708
QQ
 楼主| 发表于 2014-12-3 14:58:35 | 显示全部楼层


代码是完全参照上面写的呀,为什么还是:

alert("xmlHttp.readyState = " + xmlHttp.readyState);     显示1
alert("xmlHttp.status = " + xmlHttp.status);                   显示0

呢??

代码如下:
--------------
var xmlHttp;
//创建xmlHttp
Model.prototype.createXMLHttpRequest = function()
{
   xmlHttp = null;
   if(window.ActiveXObject)
   {
    // code for IE5 and IE6   
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
   }
    else if(window.XMLHttpRequest)
   {   
    // code for all new browsers
    xmlHttp=new XMLHttpRequest();
   }
   //alert("xmlHttp="+xmlHttp);
};

//拼出要发送的用户和密码数据
Model.prototype.createQueryString = function()
{
     //取得用户名和密码
  var userid = this.getElementByXid("userid").value;
  var passwd = this.getElementByXid("passwd").value;
  
  //拼出要发送的用户和密码数据
  var queryString="firstName=" + userid + "&middleName=" + passwd + "&birthday=1111" ;
  
  return queryString;
};

//使用get方式发送
Model.prototype.doRequestUsingGET =  function()
{
  this.createXMLHttpRequest();

  var queryString="./GetAndPostExample?";
  queryString=queryString+ this.createQueryString() + "&timeStamp=" + new Date().getTime();
     
     if (xmlHttp !== null){        
           //onreadystatechange 是一个事件句柄。
           //它的值(handleStateChange)是一个函数的名称,当 XMLHttpRequest 对象的状态发生改变时,会触发此函数。
           //状态从 0 (uninitialized) 到 4 (complete) 进行变化。
           //仅在状态为 4 时,我们才执行代码。
        xmlHttp.onreadystatechange= this.handleStateChange();
     xmlHttp.open("GET",queryString,true);
     xmlHttp.send(null);
     }else{
        alert("Your browser does not support XMLHTTP.");
     }
     
  
};

//使用post方式发送
Model.prototype.doRequestUsingPost = function()
{
  this.createXMLHttpRequest();
  var url="./GetAndPostExample?timeStamp=" + new Date().getTime();
  var queryString= this.createQueryString();
  xmlHttp.open("POST",url,true);
     //onreadystatechange 是一个事件句柄。
        //它的值(handleStateChange)是一个函数的名称,当 XMLHttpRequest 对象的状态发生改变时,会触发此函数。
        //状态从 0 (uninitialized) 到 4 (complete) 进行变化。
        //仅在状态为 4 时,我们才执行代码。
     var urlqrystr = url + "&" + queryString;   
  xmlHttp.onreadystatechange= this.handleStateChange();
  xmlHttp.setRequestHeader("Content-Length",urlqrystr.length);  
  xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  xmlHttp.send(queryString);
};


Model.prototype.handleStateChange = function()
{   
  alert("xmlHttp.readyState = " + xmlHttp.readyState);
  alert("xmlHttp.status = " + xmlHttp.status);
      
  if(xmlHttp.readyState==4)   // 4 = "loaded"
  {
     if(xmlHttp.status==200)  // 200 = OK
     {
        this.parseResults();
     }
      else
         {
           alert("Problem retrieving XML data");
         }
   
   }
};

//解析返回值
Model.prototype.parseResults = function()
{
   //var responseDiv= this.getElementByXid("output1");
   //if(responseDiv.hasChildNodes())
   //{
   //  responseDiv.removeChild(responseDiv.childNodes[0]);
   //}
      
      var dzb = eval("(" + xmlHttp.responseText +")");  
      alert(dzb);  
      
      alert("后台返回的返回值: "+xmlHttp.responseText);
    //var responseText=document.createTextNode(xmlHttp.responseText);
   
   //responseDiv.appendChild(responseText);
};


怒发冲冠凭栏处,潇潇雨歇,抬望眼,仰天长啸,壮怀激烈。  
三十功名尘与土,八千里路云和月,莫等闲,白了少年头,空悲切
回复 支持 反对

使用道具 举报

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
发表于 2014-12-4 10:11:15 | 显示全部楼层
可以参考外卖示例,发送ajax请求
参考 /UI2/takeout/baasClient.js
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-18 07:50 , Processed in 0.096265 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表