jquery ajax getJson onSuccess使用响应中的函数

时间:2012-09-04 15:04:53

标签: jquery ajax json

我有一个js脚本只是获得一个基本的Json内容page.js

{
"desc":"",
**"save":function(){alert(0);}**
}

然后在success:function(data)我只想做data.save() onsuccess永远不会被调用?

'完成'但是我的保存功能仍未评估?

我尝试将其写为字符串:"save":"function(){alert(0);}" 并将其应用于eval onSuccess,但奇怪的是它说函数没有名称

这是一个限制 - 我们不能将函数作为json响应对象的一部分传递吗?

更少执行它们? 或者我只是做错了什么

感谢您的见解

2 个答案:

答案 0 :(得分:1)

JSON是一种纯数据定义语言,因此函数不能是JSON对象的一部分。见this question。使用eval()可能会有效,但我强烈建议您不要使用它,因为它是unsafe。我建议您在对象中实现所需的行为,然后使用从服务器获得的JSON设置此对象的状态。

答案 1 :(得分:0)

您可以只评估alert(0),它应该可以工作(并将其设置为JSON中的“保存”字符串)

但是你应该避免使用eval作为解决方法

编辑:这已在此处得到解答:Is it valid to define functions in JSON results?