本文写于 6 个月之前,如果这是一篇关于计算机技术的文章,那本文内容很有可能已经过期了。

最近在为摆摊写点前端 js 的时候,在使用 jquery 的 $.ajax()这个方法的时候,当datatype设置为json时,总是不执行success回调,而是执行error回调。而将datatype设置成text,就可以执行success回调了,摆摊使用的是jQuery JavaScript Library v1.6.2,查看jQuery文档可知:

“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.)

我用php产生的字符串是

1
2
3

{‘isbn’:'ISBN号码格式不正确,应为10位或者13位的字符串’}

很明显,json.org规则使用的是双引号,而不是单引号,jQuery1.4 以后都要求更为严格的 json 格式

对于以上单引号的字符串,可以使用datatype为text,然后使用

1
2
3
4

//content = {‘isbn’:'ISBN号码格式不正确,应为10位或者13位的字符串’}
var json = eval(‘(‘+ content +’)')

(完)

本文为原创文章,转载需注明出处,网站 https://thisiswangle.com