在JSON中传递javascript代码

时间:2010-02-06 08:04:19

标签: php javascript ajax json

我正在使用jQuery对一个PHP脚本进行AJAX调用,该脚本需要返回嵌入在JSON结果中的javascript代码,以便执行jQuery代码。如何在JSON中传递javascript代码?

2 个答案:

答案 0 :(得分:3)

两种方式:

  1. 您必须将其作为字符串传递,并在客户端使用eval()
  2. 您可以使用JSONP,而不是进行调用,让客户端脚本插入<script>src指向返回新脚本的服务器端代码。
  3. 在任何一种情况下,请确保您确保安全 - 如果用户可以某种方式将自己的代码插入您的回复中,他们可能会造成一些损害。

答案 1 :(得分:0)

JSON的定义不允许传输javascript函数。它意味着语言无关。如果您使用JSON解析器而不是eval(),那么如果JSON包含任何函数,它将失败。

道格拉斯·克罗克福德,我相信他创造的术语JSONJSON parser for javascript

即使是JSONP也不会返回函数而是函数调用 - myFuncIAskedFor({ returned JSON })
正如其他人所提到的,在本地定义你的功能,这是最安全的事情 还使用JSON解析器