getJSON在服务器上不起作用,但在本地起作用

时间:2012-04-16 16:57:33

标签: javascript jquery json getjson

我正在使用jQuery进行级联复选框,但getJSON命令在服务器上不起作用(本地工作正常)。它找不到data.json文件(请参阅错误调试)。

脚本的一部分:

<script type="text/javascript" src="scripts/jquery-1.7.2.js"></script>
<script>
    $(function() {

        $("#json-one").change(function() {

            var $dropdown = $(this);

            $.getJSON("data.json?callback=?", function(data) {

                var key = $dropdown.val();
                var vals = [];

                switch(key) {
                    case 'BR9':
                        vals = data.BR9.split(",");
                        break;
                    case 'base':
                        vals = ['Please choose from above'];
                }

                var $jsontwo = $("#json-two");
                $jsontwo.empty();
                $.each(vals, function(index, value) {
                    $jsontwo.append("<option>" + value + "</option>");
                });

            });
        });

    });
</script>

来自firebug的错误:

GET http://______my url site ____/data.json 404 NOT FOUND x 25ms

如果我改变了行

$.getJSON("data.json", function(data) ...

$.getJSON("data.json?callback=?", function(data) ...

它也不起作用。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

您是否尝试过提供json文件的完整路径?

$.getJSON("http://www.mywebsite.com/folder/data.json?callback=?", function(data) {});

答案 1 :(得分:0)

您正在进行JSON呼叫的页面和您正在进行呼叫的页面是否在同一个域中? JSON不支持跨域调用,您需要使用JSONP。