使用jQuery读取文本文件

Gad*_*i A 18 javascript jquery

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

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

$.get('file_to_read.txt', function(data) {
   do_something_with(data)
});
Run Code Online (Sandbox Code Playgroud)

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

jQuery doc说我需要指定数据类型.但是,他们只列出html,xml,json和script作为可能的数据文件; 我应该怎么做一个普通的txt文件,我想直接加载到字符串?

小智 40

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

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

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


记住,$.get只是一个方便的包装$.ajax.数据类型列在$.ajax()文档中 ...

数据类型

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

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

"xml":返回可以通过jQuery处理的XML文档.

"html":以纯文本形式返回HTML; 包含的脚本标记在插入DOM时进行评估.

"script":将响应评估为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.

"text":纯文本字符串.

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

  • @GadiA:我刚用`$ .ajax`的文档更新了我的答案.像`$ .get`这样的方法只是`$ .ajax`的包装器,所以你通常应该参考这些文档. (2认同)