22

可能重复:
jquery - 读取文本文件?

我想使用 jQuery 读取本地文本文件。所以我试试这个:

$.get('file_to_read.txt', function(data) {
   do_something_with(data)
});

但是,jQuery 将“file_to_read.txt”解释为 html 文件,我收到 Javascript 错误,因为它的格式不正确,并且“do_something_with”没有达到预期的效果,因为数据不是字符串。

jQuery 文档说我需要指定数据类型。但是,他们只列出了 html、xml、json 和 script 作为可能的数据文件;我应该如何处理我想直接加载到字符串中的纯 txt 文件?

4

2 回答 2

48

'text'在您的$.get()请求中使用数据类型。

$.get('file_to_read.txt', function(data) {
   do_something_with(data)
}, 'text');
 //  ^------last argument

否则 jQuery 会猜测返回的内容。


记住,$.get只是$.ajax. $.ajax()数据类型在文档中列出...

数据类型

默认值:智能猜测(xml、json、脚本或 html)

您期望从服务器返回的数据类型。如果没有指定,jQuery 将尝试根据响应的 MIME 类型推断它(XML MIME 类型将产生 XML,在 1.4 中 JSON 将产生一个 JavaScript 对象,在 1.4 中脚本将执行脚本,其他任何东西都会作为字符串返回)。可用的类型(以及作为第一个参数传递给成功回调的结果)是:

“xml”:返回一个可以通过 jQuery 处理的 XML 文档。

“html”:以纯文本形式返回 HTML;包含的脚本标签在插入 DOM 时进行评估。

“脚本”:将响应评估为 JavaScript,并将其作为纯文本返回。通过将查询字符串参数“_=[TIMESTAMP]”附加到 URL 来禁用缓存,除非缓存选项设置为 true。注意:这会将 POST 转换为远程域请求的 GET。

“json”:将响应评估为 JSON 并返回一个 JavaScript 对象。在 jQuery 1.4 中,JSON 数据以严格的方式解析;任何格式错误的 JSON 都会被拒绝并引发解析错误。(有关正确的 JSON 格式的更多信息,请参阅 json.org。)

“jsonp”:使用 JSONP 加载到 JSON 块中。添加一个额外的“?callback =?” 到 URL 的末尾以指定回调。通过将查询字符串参数“_=[TIMESTAMP]”附加到 URL 来禁用缓存,除非缓存选项设置为 true。

“文本”:纯文本字符串。

多个空格分隔的值:从 jQuery 1.5 开始,jQuery 可以将 dataType 从它在 Content-Type 标头中接收到的内容转换为您需要的内容。例如,如果您希望将文本响应视为 XML,请使用“text xml”作为 dataType。您还可以发出 JSONP 请求,将其作为文本接收,并由 jQuery 解释为 XML:“jsonp text xml”。类似地,诸如“jsonp xml”之类的速记字符串将首先尝试从 jsonp 转换为 xml,如果失败,则从 jsonp 转换为文本,然后从文本转换为 xml。

于 2012-04-11T19:23:43.410 回答
1

尝试 dataType "text" (或 "html",如果你没有 html "script" 标签,它应该可以工作)

于 2012-04-11T19:24:30.440 回答