最简单的getJSON调用不起作用

时间:2012-06-13 05:46:44

标签: jquery cross-browser getjson

似乎无法弄清楚下面的简单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类型。

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

3 个答案:

答案 0 :(得分: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.

答案 1 :(得分:0)

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

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

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

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

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

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

答案 2 :(得分:0)

如何按照ubuntu中的以下说明进行操作? 在IIS管理器中打开服务器的属性,然后单击“MIME类型” 点击&#34;新&#34;。输入&#34; JSON&#34;对于扩展和&#34; application / json&#34;对于MIME类型。