近段時間做項目,在項目使用了ajax技術,遇到了一個奇怪的問題:"$.ajax返回的JSON格式的數據無法執行success",代碼是這樣寫的:
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。以前沒有注意到這樣的問題,這次遇到了,也找到了解決辦法,在此記錄一下!