从一开始我就想说我知道THIS https://stackoverflow.com/questions/1076013/difference-between-getjson-and-ajax-in-jquery问题与我的标题相同,但该用户提出了有关他遇到的问题的问题。
我关于差异的问题更加主观。我正在学习使用 Jquery 和 Ajax,并且遇到了这两种方法。现在对我来说,他们似乎都做了同样的事情。 (从指定的 URL 获取原始 JSON 数据)但我确信存在更大的差异。
我还注意到人们更倾向于使用 $.ajax 而不是 getJSON,这也是有原因的吗?
任何帮助表示赞赏!
$.getJSON()
From http://api.jquery.com/jquery.getjson/ http://api.jquery.com/jquery.getjson/
这是一个简写的 Ajax 函数,相当于:
$.ajax({
dataType: "json",
url: url,
data: data,
success: success
});
$.ajax()
From http://api.jquery.com/jquery.ajax/ http://api.jquery.com/jquery.ajax/
dataType (默认:智能猜测(xml、json、脚本或 html))类型:字符串
您期望从服务器返回的数据类型。如果未指定,jQuery 将尝试根据响应的 MIME 类型推断它(XML MIME 类型将生成 XML,在 1.4 JSON 中将生成 JavaScript 对象,在 1.4 脚本中将执行脚本,其他任何内容都将是以字符串形式返回)。可用的类型(以及作为成功回调的第一个参数传递的结果)是:
"json":将响应评估为 JSON 并返回 JavaScript 对象。跨域“json”请求将转换为“jsonp”,除非请求在其请求选项中包含 jsonp: false。 JSON数据经过严格解析;任何格式错误的 JSON 都会被拒绝并引发解析错误。从 jQuery 1.9 开始,空响应也会被拒绝;服务器应该返回 null 或 {} 响应。 (有关正确 JSON 格式的更多信息,请参阅 json.org。)
也就是说,如果将 dataType 设置为 JSON 并且没有返回 JSON,则会引发解析错误。
所以从文档来看,$.getJSON()
等于$.ajax()
dataType 设置为“json”,这意味着如果返回的内容与 JSON 不同,最终会出现解析错误。
所以你关于两者几乎相同的说法基本上是正确的:)。$.getJSON()
只是更广泛的简写$.ajax()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)