3

似乎无法弄清楚下面简单的 getJSON 调用有什么问题。它在 FF12 中运行良好,但在 IE8 和 Chrome19 中运行良好。

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js">    </script>
<script type="text/javascript">
$(document).ready(function(){
$.getJSON('data.json',function(result){
    alert("success");
});
});
</script>

请注意,以下在所有浏览器中都可以正常工作:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js">       </script>
<script type="text/javascript">
$(document).ready(function(){
       alert("success");
});
</script>

所以,显然,getJSON 调用出了点问题。

有任何想法吗?

谢谢。

更新: 感谢 samy.vilar,我能够让它工作。以下是我更正的内容:-

  1. 将文件托管到服务器(在本例中为 IIS 7):要发出 AJAX 请求,文件必须托管在服务器上。我试图使用文件系统访问 data.json 。

  2. 在 IIS 7 中添加了扩展 .json 的 MIME 类型。

做到了。虽然我仍然想知道当我们无法在没有托管的情况下完成 AJAX 请求时它在 FF 中是如何工作的。

4

3 回答 3

3

由于 IIS 默认不支持 json 您可以尝试将 data.json 重命名为 data.html 这样 IIS 不会抱怨 ;) ...只需将 getJSON 更新为$.getJSON('data.html,...

如果您想启用 .json 文件扩展名,只需按照此说明进行操作。 Open the properties for the server in IIS Manager and click MIME Types
Click "New". Enter "JSON" for the extension and "application/json" for the MIME type.

于 2012-06-13T06:00:42.063 回答
0

这与 D3.js 在本地加载 json 数据的问题相同。

D3.js 的补丁可以在这里找到:

https://github.com/jasondavies/d3/commit/95b1eaaf68a1e75e6cf95b88d7e4bbc834b8489d

正在应用的补丁使本地 json 数据正常工作。

我希望这些补丁也可以应用于 jquery-1.7.2

我在使用 jQuery-1.7.2 的 jQtouch b4 上遇到了同样的问题。使用 jQuery-1.3.2 的以前版本的 jQTouch b1 可以正常工作。

于 2012-06-20T04:40:21.497 回答
0

如何在 ubuntu 中遵循以下说明?在 IIS 管理器中打开服务器的属性并单击 MIME 类型 单击“新建”。为扩展名输入“JSON”,为 MIME 类型输入“application/json”。

于 2015-06-18T20:09:20.667 回答