近段時間作項目,在項目使用了ajax技術,遇到了一個奇怪的問題:"$.ajax返回的JSON格式的數據沒法執行success",代碼是這樣寫的:jquery
1 $.ajax({ 2 .. 3 dataType:'json', 4 ... 5 success:function(jsonData){ 6 //不執行success 7 }, 8 error:function(error){ 9 //老是執行這個error 10 } 11 });
百思不得其解啊,爲何會這樣子呢?檢查了一下返回的JSON字符串,我以爲JSON字符串的格式應該沒有問題的,因而在網上查了一下,發現有還真有人遇到了和我同樣的問題,找出緣由所在"是由於我指定了dataType:'json',這樣指定以後,對Json格式的要求就很是嚴格起來了,起初個人json格式是這樣寫的:"{result:{\"success\":\"true\",\"meg\":\"success\"}}",可這樣寫不行,得改爲這樣寫:"{\"success\":true,\"mesg\":\"success\"}",若是說是bool類型,則不用加引號,其它的鍵/值都須要加引號。jquery 1.4之後對json格式變嚴格了,也就是說必需要這種格式的{"鍵":"值","鍵":"值"};像原來的{鍵:值,鍵:值}和{'鍵':'值','鍵':'值'}這種都是錯誤的,不合標準,因此jquery返回error。之前沒有注意到這樣的問題,此次遇到了,也找到了解決辦法,在此記錄一下!ajax