快速提问。JavaScript中的Eval是不安全的吗?我有一个JSON对象作为字符串,我需要将其转换为实际对象,以便获取数据:
function PopulateSeriesFields(result) { data = eval('(' + result + ')'); var myFakeExample = data.exampleType }
如果有帮助,我正在使用jQuery的$ .ajax方法。
谢谢
好吧,不管是否安全,当您使用jQuery时,最好使用$ .getJSON()方法,而不是$ .ajax():
$.getJSON(url, function(data){ alert(data.exampleType); });
eval() 当您仅与自己的服务器通信时,通常被认为是安全的JSON解析,尤其是当您在服务器端使用良好的JSON库以保证生成的JSON不会包含任何讨厌的东西时。
eval()
甚至JSON的作者Douglas Crockford都说eval(),除了解析JSON外,您不应在代码中的任何地方使用。参见他的书《JavaScript:优秀的部分》中的相应部分