感覺很莫名奇妙,前一陣子還好好的,怎麼現在就突然報錯了? 程序根本沒動。於是開始跟蹤分析,請求、返回的內容。。。最後判斷是jquery
不承認返回的內容是json格式。當時返回的內容是:
代碼如下:
{'keylist':[
{'tid':'13',"sumnum':'1'},{'tid':'21','sumnum':'1'}
]}
經過仔細檢查也沒發現任何問題,返回流的字符已經設成utf-8,內容用ff檢測,ff也能識別成json格式,但此時還是報“pareseerror”錯誤。
看著看著代碼,突然發現,當前返回的內容,都是用英文單引號括起來的,依稀記得最嚴格的寫法應該用英文雙引號,於是立即修改系統底層庫(c#)
的json數據生成方法,全部改成英文雙引號,改後返回的內容如下:
代碼如下:
{"keylist":[
{"tid":"13","sumnum":"1"},{"tid":"21","sumnum":"1"}
]}
結果放到測試服一試,問題解決! 我真&*^#%@$@
總結:仔細回想了一下,前些日子因為一些原因用jquery最新版本替換了團購系統中的舊版本,當時沒想到這種情況。後來從網上查到資料,jquery在1.3.x版本後對json的解析采取了更嚴格的方法,所以要求數據必須書寫的與國際規范一致。