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

javascript 取回的数据有劳驾

2012-12-23 
javascript 取回的数据有麻烦xmlHttp.onreadyStatechange xmlOnChangefunction xmlOnChange(){if(xmlHt

javascript 取回的数据有麻烦


xmlHttp.onreadyStatechange = xmlOnChange;
function xmlOnChange()
{
        if(xmlHttp.readyState == 4)
{
                //xmlResult 取回的数据是:0|数据1|数据2|数据3, 
var xmlResult = xmlHttp.responseText;
alert(xmlResult);
                //现在拿xmlResult[0]的值去与0对比,条件居然不成立,谷歌下不成立,IE下是正常的
                //我也有另写一个测试的页面,也是同样传回一样的数据格式,与0对比的时候就正常了,
                //我不知道我页面什么地方错了,求指点
if(xmlResult[0] == 0)  //按假设,这里应该是成立的,不过typeof 显示的类型是string
{
alert("正常拿到0");
         }
         }
}
 
还有,就是火狐浏览器,根本不进这个函数里面来,昨天一个晚上都在弄这个。
[最优解释]
xmlHttp:
  火狐是  new XMLHttpRequest() 
  IE 是  new ActiveXObject("版本")

//xmlResult 取回的数据是:0
[其他解释]
数据1
[其他解释]
数据1
[其他解释]
数据2
[其他解释]
数据3
你取到的是字符串 怎么可以使用if(xmlResult[0] == 0) 数组方式取值呢
var xmlResult = xmlHttp.responseText; // xmlResult 取回的数据是:[0,1,2,3]
xmlResult  = eval(xmlResult);

后台传递的时候如果你没有使用别的类库 如java的json lib 那么在转义的时候要注意

String result = "{\'key1\':\'value1\',\'key2\':\'value2\'}";
response.getWriter().write(result);


上网查一下 很容易
代码没测试 有可能有拼写错的 作参考可以 不要直接CTRL+C/V
介绍本书<<javascript高级编程>> 看上三遍 收益会非常大
[其他解释]
引用:
xmlHttp:
  火狐是  new XMLHttpRequest() 
  IE 是  new ActiveXObject("版本")

//xmlResult 取回的数据是:0
[其他解释]
数据2
[其他解释]
数据3
你取到的是字符串 怎么可以使用if(xmlResult[0] == 0) 数组方式取值呢
var xmlResult = xmlHttp.responseText; // xml……


谢谢你,取数据的事弄好了,现在差火狐的事情搞不定,不知道为啥,没应该,你说的。XMLHttpRequest我也写过了,这句也能正常,就是不进他的onreadystatechange函数,
[其他解释]
你是同步还是异步?同步的话不能用onreadystatechange
另外,if(xmlHttp.readyState == 4)最好写成
if(xmlHttp.readyState == 4 && xmlHttp.status ==200)


[其他解释]
火狐的话,注意一下中文内容提交前的编码转换吧。
[其他解释]
firefox用firebug看下是不是出错了。。。

热点排行