我的服务器从服务器返回这个简单的对象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它很好 也许我应该发送别的东西? 谢谢
答案 0 :(得分:0)
这样做的唯一选择是使用eval - 但这是一个可怕的想法。
你的eval不起作用的原因是因为你需要用括号括起来。
o.jqxGrid(eval('('+data+')'));
但是对AJAX的响应数据使用eval是危险且容易出错的,并且可能会引起安全问题(你完全信任那些产生响应的东西!)。
我建议使用标准的JSON格式化对象(不引用javascript变量),然后手动用本地变量装饰该对象。也许您可以使用特殊的关键字字符串进行替换。