Jquery ajax json 不执行success的原因
溺水的魚
最近在看jQuery的API文檔,在使用到j(luò)Query的ajax時,如果指定了dataType為json,老是不執(zhí)行success回調(diào),而是執(zhí)行了error回調(diào)函數(shù),極度郁悶。后面改為1.2.6版本可以執(zhí)行。
然后繼續(xù)下載了幾個jquery版本,如1.3.2,1.4.0的,指定dataType為json都不能執(zhí)行success回調(diào),只有小于1.3版本的才能執(zhí)行success回調(diào)。
最后去jquery的網(wǎng)站找到了在線的api文檔看了下,地址:http://api.jquery.com/jQuery.ajax/?,發(fā)現(xiàn)dataType如下的說明
"json": Evaluates the response as JSON and returns a JavaScript object. In jQuery 1.4 the JSON data is parsed in a strict manner; any malformed JSON is rejected and a parse error is thrown. (See json.org for more information on proper JSON formatting.)
原來是jquery1.4版本以后對json格式要求非常嚴(yán)格了,要滿足json.org網(wǎng)站定義的格式才能執(zhí)行success回調(diào),否則都會出錯,無法解析返回的json數(shù)據(jù)。說的是1.4+以上的,那為什么下載的1.3.2指定dataType為json時也不能執(zhí)行success回調(diào)呢?
怪不得不執(zhí)行,原來我返回的是{success:true,id:1} 這種不規(guī)則的字符串,不是嚴(yán)格的json格式,改成{"success":true,"id":"1"} 就可以正常執(zhí)行success回調(diào)了。
JSON格式總結(jié)下,詳細(xì)的去json.org 查看。
1)鍵名稱:用雙引號 括起
2)字符串:用使用雙引號 括起
3)數(shù)字,布爾類型不需要 使用雙引號 括起
總結(jié)
以上是生活随笔為你收集整理的Jquery ajax json 不执行success的原因的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: liferay如何在struts2中調用
- 下一篇: linux 更改文件和目录权限