0

我目前在正确使用 jQuery 时遇到了一些麻烦。我正在尝试通过 jQuery.get 加载一些 csv 文件(即 google.com),并构建一些图表。不知何故,jQuery 无法正确加载文件。这是我的代码:

<html>
    <head>

    <!--Load the AJAX API-->

    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
    <script type="text/javascript">


        $(document).keypress(function(e) {if(e.keyCode == 13) {updateData();};});

        drawchart("2013.04.02")

        function drawchart(date){

            jQuery.ajaxSetup({async:false});

            var sql = "http://www.andrewpatton.com/countrylist.csv";

            console.log(sql);

            var ans= jQuery.get(sql);

            ans.done(...draw...);

            ans.fail(console.log("fail"));
        }

    </script>
    </head>

<body>

<input id="date-input" style=margin-left:160px type="text"  id="date" name="date" />
<input type="button" value="submit" onClick="updateData();"/>
<p style=margin-left:160px> Date format: YYYY.MM.DD </p>

</body>
</html>

我已经测试了 url,当我在浏览器中输入 url 时,它确实返回了一个 .csv 文件,所以我的猜测是 jQuery 有一些我没有得到的东西......

有人可以告诉我可能会发生什么吗?

4

1 回答 1

0

正如@adeneo 在评论中提到的,您在这里遇到了跨域请求问题。这是一个不受欢迎(但完全合理)的安全“功能”。要获得所需的结果,您需要使用服务器端语言(PHP/Ruby/Python 等)来获取 CSV 文件,必要时对其进行解析,然后在 jQuery 脚本中使用该数据。

解决这个问题的传统方法是对您的请求使用 JSONP,但是当您要加载.csv文件时,这种方法将不起作用。

更多信息在这里

于 2013-04-03T20:31:16.670 回答