论坛首页 入门技术论坛

不使用jquery取得struts2 json插件的返回值,使用最原始ajax方式取得json对象

浏览 3662 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-04-14  

          struts2的json插件返回值是一个json对象,如果用jquery的ajax方法很容易取得,但是在使用别人的控件(未使用jquery)或者不使用jquery来操作数据时,就会遇到问题了。此时我们用原始的ajax方式来获取。如下图,看起来是一个json对象,实际上不是,只是一个字符串而以,因为我们用的是new XMLHttpRequest()。responseText来取值的。所以还必须转化一下,郁闷许久之后在一个哥们的博客上发现了该方法(感谢这位哥们,其实自己看书的时候也注意到了该方法,只是没放在心上,靠,经常出现这种问题),方法如下:
在字符串两端再加上括号然后eval就ok了

var gethttp = function()
 {
  try{ return new XMLHttpRequest(); }catch(e){}
  try{ return new ActiveXObject('Msxml2.XMLHTTP'); }catch(e){}
  try{ return new ActiveXObject('Microsoft.XMLHTTP'); }catch(e){}
 
  return null;
 };

var oh = gethttp();

var retxt = oh.responseText
retxt=eval('('+retxt+')')//这句最重要,上面可以忽略

 

换句话说,即使你拼接出符合json格式的字符串,还需要用eval(),才能真正变成json对象

 

  • 大小: 22.3 KB
   发表时间:2009-04-15  
不知道JSON可以直接执行的还叫玩AJAX?

恭喜,你得道了!
0 请登录后投票
   发表时间:2009-04-16  
啥意思,没懂,表述有问题
1 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics