我确信这是一个愚蠢的疏忽,但我无法弄清楚如何让jQuery的'getJSON'功能起作用。出于测试目的,我有一个目录设置如下:
test.html
js/
jquery-1.6.2.min.js
test.js
ajax/
test.json
在<head>
的{{1}}我有行
test.html
作为<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="js/test.js"></script>
函数的第一次测试,getJSON
内容如下:
test.js
然而,加载'test.html'时没有任何反应。我有一种感觉'ajax / test.json'路径规范是问题,但我不确定原因。
编辑:我对花括号的不好,这在我错误复制粘贴的代码中实际上很好。我打开了Chrome开发者工具,现在看到XMLHttpRequest错误,并说明:“Access-Control-Allow-Origin不允许使用Origin null。” 编辑2:那很烦人..看起来像是Chrome issue。适用于Safari。作为一种解决方法,您可以在基本目录中启动$(document).ready(function() {
$.getJSON('ajax/test.json', function(data) {
alert('Success!');
});
}
并访问localhost:8000 / test.html中的页面,在这种情况下Chrome可以正常工作。
答案 0 :(得分:3)
您需要在getJSON
回调函数和ready
函数上正确关闭括号:
$(document).ready(function() {
$.getJSON('ajax/test.json', function(data) {
alert('Success!');
});
});
答案 1 :(得分:1)
您的代码:
$.getJSON('ajax/test.json', function(data) {
alert('Success!');
); // you missed a curly brace here. that may be a problem
正确代码:
$.getJSON('ajax/test.json', function(data) {
alert('Success!');
});
答案 2 :(得分:0)
听起来你正试图直接从文件系统运行它。通过HTTP(通过安装Web服务器)使页面可用并改为使用它。
本地网页对HTTP网页有许多不同的安全规则。