请问这两种请求访问json的方法有什么区别?

请问这两种请求访问json的方法有什么区别?

//////1.

$.ajax({

url:'js/json.json',

dataType:'json'

}).done(function(data)

{

console.log(data);

});

//////2.

$.getJSON('js/json.json',function(data){

console.log(data);

});

这两种方法我都是在配置了服务器的前提下,能不能不配置服务器,使用jsonp的方式访问自己本地的json文件,还有就是设置datatype:jsonp 一定得跨域吗?访问本地文件就不行了吗?


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕星星 2019-03-04 19:35:43

1、如果使用$.ajax和$.getJSON方法获取本地文件,是需要将代码放在服务器中的。

2、如果使用视频中封装的getJSONP方法是获取不到本地json数据的,因为视频中封装的代码执针对那一个接口链接来说的。

好帮手慕星星 2019-03-04 17:53:08

你好,这两个的原理不同

1、使用ajax的方式获取json文件数据,是通过创建http对象,向服务器发送请求,服务器返回数据。与服务器有一个交互,所以需要使用服务器。

2、视频中封装的getJSONP函数,具体的实现通过script标签跨域应用来完成,采用json 作为传输数据的载体,本地不需要服务器也可以获取数据。

  • 提问者 Idiot_陈皮 #1
    那本地的json文件,在不设置服务器的情况下,能不能用跨域的方式访问到,比如url的值写成本地的域名
    2019-03-04 18:15:36
好帮手慕星星 2019-03-04 16:23:51

你好,

1、$.getJSON()是专门为ajax获取json数据而设置的,并且支持跨域调用。

$.ajax是一种常用的普通封装异步方式,把datatype类型改变jsonp也可以实现跨域。

2、json文件需要在服务器下才能获取,不能不使用服务器。

3、使用jsonp是为了解决跨域的问题,不是说一定要跨域,如果获取自己本地的文件就不需要跨域了。有些时候访问外部链接的时候,因为不在同一个服务器下面,所以会出现跨域问题,为了解决这个问题使用的jsonp。

祝学习愉快!

  • 提问者 Idiot_陈皮 #1
    那为什么访问外部链接的json文件就不需要配置服务器了
    2019-03-04 16:54:45
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师