2

我有一个我希望加载的 .csv 文件,其中包含 .HTML 页面将使用的信息。但是,我不确定该怎么做,

这是文件的简单图像:http: //i.imgur.com/GHfrgff.png

我研究了 HTML5 的FileReader,它似乎可以完成工作,但它似乎需要使用输入表单。我只想加载文件并能够访问其中的文本并在我认为合适的时候对其进行操作。

这篇文章提到了 AJAX,但问题是这个网页只会在本地部署,所以有点不确定。

这通常是怎么做的?

4

4 回答 4

1

由于您的网页和数据文件位于同一目录中,您可以使用 AJAX 读取数据文件。但是,我从您图片中的图标中注意到您正在使用 Chrome。默认情况下,Chrome 会阻止该功能并报告访问冲突。要允许读取数据文件,您必须使用命令行选项调用 Chrome --allow-file-access-from-files

另一种可能对您有用的方法是使用将文件拖放到您的网页上。有关“拖放文件”,请参阅您首选的 DOM 参考。

于 2013-07-21T10:15:37.880 回答
0

出于安全目的,您不能发出跨域 ajax 请求。这就是拥有 api 的全部意义所在。但是,您可以从$.get请求 URL 中创建一个 api。

解决方案是使用 YQL(Yahoo 查询语言),它是一个非常漂亮的工具,可以从几乎任何网站进行 api 调用。因此,您可以轻松读取文件的内容并使用它。

您可能想查看官方文档YQL 控制台

我还专门为使用 YQL 处理跨域 ajax 请求写了一篇博文。希望能帮助到你

于 2013-07-21T06:09:05.623 回答
0

您可以尝试 AJAX(如果您不需要异步处理,请将“async”设置为 false。以下版本在我通过本地 Web 服务器(地址包含“localhost”)使用时尝试的任何浏览器中运行,并且文本文件确实在UTF-8 格式。如果您想通过文件系统启动页面(地址以“file”开头),那么 Chrome(也可能是 Safari,但不是 Firefox)会生成“Origin null is not allowed by Access-Control-Allow-Origin。”-上面提到的错误。请参阅此处的讨论。

    $.ajax({
        async: false,
        type: "GET",
        url: "./testcsv.csv",
        dataType: "text",
           contentType: "application/x-www-form-urlencoded;charset=UTF-8",
        success: function (data) {
             //parse the file content here
           }
        });

不过,使用包含 Phrogz 提到的作为变量的设置的脚本文件的想法在您的场景中可能是一个可行的选择。我正在使用“Ini”格式的文件以供用户更改。

于 2013-09-14T08:40:45.623 回答
0

您完全可以向本地文件发出 ajax 请求,并取回其内容。

如果您使用的是 jQuery,请查看$.get()将在变量中返回文件内容的函数。您只需在参数中传递文件的路径,就像查询“正常” URL 一样。

于 2013-07-21T04:07:44.323 回答