2016-06-24 48 views
0

我不知道这是否是重复的帖子,如果是的话很抱歉。我正在使用jquery.getJSON来加载我的服务器上的json工作得很好。尽管如果我尝试在另一台服务器上加载json文件,它不起作用。我知道我在这里没有任何代码(因为没有太多意思),但我只想知道我是否错误地使用了它,或者它不应该加载外部文件。如果这影响了任何内容,我正在使用iOS Safari浏览器。Jquery外部加载jquery.getJSON

编辑:我看了一下控制台(idk错误的真正含义是什么,它只是通过它试图从中获取json的url的红色),它看起来并没有实际接收数据。另外,千万要记得我在的iOS,而不是台式机,所以我可以不看在控制台的“开发标签:P

编辑2:很好,我想我得到它的工作http://skitty.xyz/getJSON/

+0

检查浏览器开发工具网络实际请求clues.Use Ajax错误处理程序也 – charlietfl

回答

0

你说你正在使用jQuery的Ajax请求从服务器加载一些JSON数据?

  1. 勾选“不工作服务器”具有相同的终点作为您的服务器。
  2. 检查,如果你想要的网址从中获取数据是正确的。
  3. 检查控制台是否记录了任何错误。

而且从http://api.jquery.com/jquery.getjson/

引述“附加注释:

由于浏览器的安全限制,大多数‘Ajax’的请求都受到同样的原产地政策;请求不能成功地检索数据来自不同的域,子域,端口或协议 脚本和JSONP请求不受相同的源策略限制。“

0

你很可能遇到路径问题; $.getJSON的目的是通过http GET请求获取数据,所以是的,它的目的是远程工作。要诊断您的问题,请确保您可以首先访问浏览器中的json文件:http://domain.com/my_data.json。如果这样的作品,用其作为URL传递到$.getJSON

$.getJSON('http://domain.com/my_data.json', function(data) { 
    // do something with your data 
}); 

http://api.jquery.com/jquery.getjson/

+0

所以我敢肯定,我有正确的代码,它的工作在我的本地文件加载其他就好了json来自网站......但是当我将所有相同的代码转移到我的网站时,它不起作用。 – Skitty

+0

如果您可以发布链接到您的网站或将它加载到主要/小提琴,我们可以看看。 – Cam

+0

好的,我写了这个,它在我的本地文件上工作得很好,但可惜我的网站上没有... http://skitty.xyz/getJSON/ – Skitty

0

jquery.getJSON使用AJAX这是所有关于外部资源。这里有几件事要检查它是不是在外部资源上工作:

1:你指定的路径是否正确?用法是jquery.getJSON(路径,回调)。路径应该是你可以放在浏览器中看到的东西。如果不正确的路径是您的问题,您将在控制台中看到404。

2:资源http和您的网站https?浏览器安全功能会阻止安全页面上的不安全资源。您会在控制台中看到此错误。

3:是否在外部资源上为您的站点启用了CORS(跨源资源共享)?服务器有时会使用IP和域的白名单来确定允许哪些来源提出请求。您还会在控制台中看到此错误。

可能还有其他一些东西需要寻找,但这是我开始的地方。

0

此外,通过各种手段,使用Safari的调试功能来LQQK at实际 HTTP所传回的往复响应你在做什么样的数据流。 (您可能需要单击首选项以查看“开发”菜单,该菜单将带您进入“显示Web检查器”及其网络选项卡。)

此方法将立即回答许多问题,中心的方法不会那么容易地告诉你。 (当然,您也可以在同一时间查看JavaScript控制台......)“实际数据流请”。 Safari会告诉你“你的应用究竟发送了什么字节”实际发送到服务器,以及“服务器发送什么字节”作为回报。 “无价!™”