jquery - 使用 jQuery GET 加载 CSV 文件返回 header 但不返回数据

标签 jquery csv

使用 jQuery“GET”函数从服务器读取 CSV 文件时,我没有获取任何数据。当我使用 FireBug 查看代码时,我可以看到 GET 请求已发送,并且返回值为“200 OK”。我还看到 header 已正确返回,因此肯定发出了请求,并且返回了数据。这也是我在 Wireshark 中看到的。在这里,我看到 CSV 文件的完整内容作为标准 HTTP 响应返回。
但我的脚本中不存在实际数据。 Firebug 显示空响应,并且永远不会调用“成功”函数。可能出了什么问题?

编辑:我的问题似乎缺少信息的重要部分。以下代码在我的本地计算机上运行,​​并由 Firefox 中的 Aptana Studio 使用内置测试服务器启动。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>       
        <title>New Web Project</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <script src="jquery.js" type="text/javascript" charset="utf-8"></script>

       <script type="text/javascript">
        var csvData;
        $(document).ready(function() {
           $("#btnGET").click(function() {
                csvData = $.ajax({
                    type: "GET",
                    url: "http://www.mywebsite.com/data/sample_file.csv",
                    dataType: "text/csv",
                    success: function () {
                       alert("done!"+ csvData.getAllResponseHeaders())
                     }
                });
           });
        }) 
 </script>
 </head>   

     <body>
        <h1>New Web Project Page</h1>
        <button id="btnGET">GET Data</button>
    </body>
</html>

最佳答案

该代码不起作用,因为我尝试进行跨域 GET。该页面和脚本托管在我的本地计算机上,并且 GET 尝试从完全不同的域检索数据。尽管技术上可行,但它被所有现代浏览器阻止,因为它是一个安全漏洞。
Frederick Behrends 为我指明了正确的方向。正如他还提到的,唯一允许的跨域 GET 是使用“jsonp”。

以下文本摘自 jQuery 文档:
“由于浏览器安全限制,大多数“Ajax”请求都受到同源策略的约束;该请求无法成功从不同的域、子域、端口或协议(protocol)检索数据。”

关于jquery - 使用 jQuery GET 加载 CSV 文件返回 header 但不返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11409920/

相关文章:

php - 交响乐 : Doctrine data fixture : how to handle large csv file?

一个范围内的当前时间指示的jquery帮助

javascript - 如何沿 x 和 z 轴增加拉伸(stretch)几何体的厚度 - Three.js

javascript - 使用 jquery 进行下拉列表选择

php - fputcsv 创建文件但下载为空

python - 直接在 pandas 中打开网站上的 csv 文件,无需下载到文件夹

php - 根据数据库值选中和取消选中复选框

jquery - 使用 jQuery-steps 进入自定义步骤

java - 在 Java 中使用 String 时出现 OutOfMemoryException

c - 检索 csv 文件的列 ID