我的jquery脚本只适用于Firefox,为什么?

时间:2014-02-25 23:04:52

标签: javascript jquery json cross-browser

<!DOCTYPE html>
<html>
  <head>
  <title>test</title>
  <script type="text/javascript" src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
  </head>
  <body>
    <div id="div1">dv1</div>
    <div id="div2">dv2</div>


    <script type="text/javascript">
    function getData(){
        $.ajax({
            type:"GET",
            url:"j.json",
            dataType:"json",
            success: function(jsondata){
                output(jsondata);               
            }
        });
    }

    function output(json){

        //var Data = eval('(' + json + ')');
        var html = '';
        //alert(Data.length);
        for(var i=0;i<json.length;i++){
            html += ' name:' + json[i].name + ' age:' + json[i].age;
        }

        document.getElementById('div1').innerHTML = html;
        document.getElementById('div2').innerHTML = json[0].name;
    }

    setTimeout(getData, 3000);      

    </script>

  </body>
 </html>

j.json文件是

[{"name":"aaa","age":18},{"name":"bbb","age":19}]

上述代码的目的是使用本地json文件中的数据更新div内容。我在IE&amp; Chrome,但都没有用。我已经google了很多但仍然无法弄清楚。

任何人都有任何提示?提前谢谢。

1 个答案:

答案 0 :(得分:3)

您使用网络服务器吗?

AJAX调用对于以file://开头的URL无效。这是因为为帮助处理跨站点脚本(XSS)而制定的相同来源要求。有关详细信息,请参阅here

正如我注意到的,您应该使用$(document).ready(function(){ your code })代替setTimeout(getData, 3000);