`
starnc
  • 浏览: 142841 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

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

阅读更多

          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
分享到:
评论
2 楼 starnc 2009-04-16  
啥意思,没懂,表述有问题
1 楼 mikab 2009-04-15  
不知道JSON可以直接执行的还叫玩AJAX?

恭喜,你得道了!

相关推荐

Global site tag (gtag.js) - Google Analytics