为什么获取的 json 文件不需要解析就能使用?

图片说明
在 success 函数中加入 var r = JSON.parse(data); 就会出现错误

你这个借口支持jsonp,返回的数据已经是json对象了,不需要JSON.parse了。

jsonp实际就是js代码,执行你的回调的时候返回的参数就是json对象
https://en.wikipedia.org/w/api.php?action=query&titles=Main%20Page&prop=revisions&rvprop=content&format=json&callback=abc

看返回的具体内容,并不是每一个请求都是返回json的。返回的是json 你才能这样写。

先要确认返回的究竟是什么,最好通知console。log()将返回的data打印出来看看。https://segmentfault.com/q/1010000006800687?_ea=1134370

jquery ajax里的dataType就是声明数据格式,你填的jsonp,肯定是json格式了。

你可以手动先判断下格式,如果不是json格式,则转化为json格式再做处理,如果是则直接处理就行了。

返回的格式已经声明了dataType

其实你可以用alert(data),把data的数据显示一下,看看你获取的data.batchcomplete是不是这样取