使用jquery读取json数据时遇到问题

时间:2011-08-04 06:49:01

标签: javascript ajax json jquery

我确信这是一个愚蠢的疏忽,但我无法弄清楚如何让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可以正常工作。

3 个答案:

答案 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网页有许多不同的安全规则。