2013-04-03 55 views
0

我目前在使用jQuery时遇到了一些麻烦。我试图通过jQuery.get加载一些csv文件(即google.com),并构建一些图。不知怎的,jQuery的只是无法加载文件properly.Here是我的代码: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,它确实返回我的.csv文件,当我在浏览器中输入网址,所以我的猜测是有没有什么与jQuery,我不明白...

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

+0

附注:为什么async设置为false? – Dom 2013-04-03 19:23:03

+4

我很确定这是你没有正确地获取东西,而不是jQuery?或者可能只是JavaScript的跨域策略。 – adeneo 2013-04-03 19:30:06

+0

雅... jQuery很好..它只是我不知道发生了什么.. – user1948847 2013-04-03 19:58:36

回答

0

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

传统的解决此问题的方法是使用JSONP来处理您的请求,但是由于您要加载.csv文件,因此该方法无效。

更多信息here

相关问题