我目前正在使用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>
我已经测试了网址,当我在浏览器中输入网址时,它确实会返回一个.csv文件,所以我的猜测是jQuery中有一些东西我没有得到...
有人可以告诉我可能会发生什么吗?
答案 0 :(得分:0)
您在此处遇到跨域请求问题,正如@adeneo在评论中提到的那样。这是一个不受欢迎(但完全合理)的安全“功能”。要获得所需的结果,您需要使用服务器端语言(PHP / Ruby / Python等)来获取CSV文件,必要时进行解析,然后在jQuery脚本中使用该数据。
传统的解决方法是使用JSONP来处理您的请求,但是当您想要加载.csv
文件时,该方法将无效。
更多信息here