繁体   English   中英

使用jquery.getJSON从外部加载Json

[英]Externally load Json with jquery.getJSON

我不知道这是否是重复的帖子,抱歉。 我正在使用jquery.getJSON在服务器上加载一个json,效果很好。 虽然,如果我尝试在其他服务器上加载json文件,则无法正常工作。 我知道我在这里没有任何代码(因为没有太多意义),但是我只想知道我使用的是错误的还是不应该加载外部文件。 如果有影响,我正在使用iOS Safari浏览器。

编辑:我已经看过控制台(idk,错误的意思是什么,它只是用x表示试图从其中获取json的url带有红色),看起来好像没有实际接收到数据。 另外,请记住我在iOS上 ,而不是台式机上,所以我看不到“开发”标签中的控制台:P

编辑2:太好了! 我想我可以使用了! http://skitty.xyz/getJSON/

您是说您正在使用jquery ajax请求从服务器加载一些json数据吗?

  1. 检查“不工作的服务器”与您的服务器具有相同的端点。
  2. 检查您要从中获取数据的URL是否正确。
  3. 检查控制台是否记录了任何错误。

另请引用http://api.jquery.com/jquery.getjson/

“补充笔记:

由于浏览器安全性的限制,大多数“ Ajax”请求都受相同的原始策略限制; 该请求无法从其他域,子域,端口或协议成功检索数据。 脚本和JSONP请求不受相同的原始策略限制。”

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

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

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

jquery.getJSON使用ajax来处理外部资源。 这里有几件事要检查它是否在外部资源上不起作用:

1:您指定的路径正确吗? 用法是jquery.getJSON(path,callback)。 路径应该是您可以在浏览器中看到的东西。 如果您输入的路径不正确,则会在控制台中看到404。

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

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

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

另外, 无论如何,请使用Safari的调试功能对实际 HTTP HTTP数据流进行LQQK at响应,以响应您的操作。 (您可能需要单击首选项以查看“开发”菜单,该菜单将带您进入“显示Web检查器”及其“ 网络”选项卡。)

这种方法将立即回答许多以JavaScript为中心的方法不会立即告诉您的问题。 (当然,您也可以同时查看JavaScript控制台。)“请实际使用数据流 。” Safari会告诉你“什么字节”你的应用程序实际发送到服务器,而“正是字节”作为回报发送服务器。 “无价!™”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM