我不知道这是否是一个重复的帖子,对不起,如果是的话。我使用jquery.getJSON在我的服务器上加载json,工作得很好。虽然,如果我尝试在不同的服务器上加载json文件,它不起作用。我知道我在这里没有任何代码(因为没有太多意义)但我只是想知道我是否使用它错误或者它是否应该加载外部文件。如果有任何影响,我会使用iOS Safari浏览器。
编辑:我已经看过控制台了(idk错误的东西真正意味着什么,它只是红色的x,它的网址是试图从json那里得到的)和它看起来它实际上没有收到数据。另外,请记住我在 iOS 上,而不是桌面,所以我无法在"开发标签中查看控制台:P 编辑2:好极了!我想我搞定了! http://skitty.xyz/getJSON/答案 0 :(得分:0)
你是说你使用jquery ajax请求从服务器加载一些json数据?
同样引自http://api.jquery.com/jquery.getjson/
“附加说明:
由于浏览器安全限制,大多数“Ajax”请求都遵循相同的原始策略;请求无法从其他域,子域,端口或协议成功检索数据。 脚本和JSONP请求不受相同的原始策略限制。“
答案 1 :(得分:0)
您最有可能遇到路径问题; $.getJSON
的目的是通过http GET请求获取数据,所以是的,它旨在远程工作。要诊断您的问题,请确保您可以先在浏览器中访问json文件:http://domain.com/my_data.json
。如果可行,请将其用作您传递到$.getJSON
的网址:
$.getJSON( 'http://domain.com/my_data.json', function(data) {
// do something with your data
});
答案 2 :(得分:0)
jquery.getJSON使用ajax,它是关于外部资源的。如果它不在外部资源上工作,可以检查以下几项:
1:您指定的路径是否正确?用法是jquery.getJSON(path,callback)。该路径应该是您可以放在浏览器中看到的东西。如果您的问题路径不正确,您将在控制台中看到404。
2:资源http和您的网站是否为https?安全页面上的非安全资源将被浏览器安全功能阻止。您在控制台中看到了此效果的错误。
3:在外部资源上为您的站点启用了CORS(跨域资源共享)吗?服务器有时会使用IP和域的白名单来确定允许哪些来源发出请求。您还会在控制台中看到此效果的错误。
可能还有其他一些需要寻找的东西,但这是我开始的地方。
答案 3 :(得分:0)
此外,无论如何使用Safari的调试功能来LQQK at
来回传递的实际 HTTP数据流回应你正在做的事情。 (您可能需要单击首选项才能看到" Develop"菜单,它将带您进入"显示Web Inspector"及其网络选项卡。)
这种方法将立即回答许多以JavaScript为中心的方法不会轻易告诉您的问题。 (当然,您也可以同时查看JavaScript控制台。)" 实际数据流,请。" Safari将告诉您"您的应用实际发送到服务器的字节" ,以及"服务器发送的字节" 的确切内容作为回报。 "!无价™"