Jquery - 从服务器带来json对象

时间:2013-12-10 19:16:03

标签: javascript jquery eval

我的服务器从服务器返回这个简单的对象dataType : "text"(不是json):

{
  "width": "100%",
  "callBack" : myCallBack //note! this is a function reference without quotes.
}

看到吼叫,我想把数据从服务器传回一些lib(我不控制)

 $.ajax({
    url: controller + "/" + action,
    dataType: "text",

    success: function (data) {
      o.jqxGrid(JSON.stringify(data));
     }
 });

这就是我的尝试:

 o.jqxGrid(JSON.stringify(data));//not working
 o.jqxGrid(eval(data));//not working

如何将上面的字符串转换为js对象。

修改 顺便说一句,没有“callBack”:myCallBack它很好 也许我应该发送别的东西? 谢谢

1 个答案:

答案 0 :(得分:0)

这样做的唯一选择是使用eval - 但这是一个可怕的想法。

你的eval不起作用的原因是因为你需要用括号括起来。

o.jqxGrid(eval('('+data+')'));

但是对AJAX的响应数据使用eval是危险且容易出错的,并且可能会引起安全问题(你完全信任那些产生响应的东西!)。

我建议使用标准的JSON格式化对象(不引用javascript变量),然后手动用本地变量装饰该对象。也许您可以使用特殊的关键字字符串进行替换。