我正在进行 AJAX 调用来检索一些纯文本:
$.ajax({
url: "programData.txt",
type: "GET",
dataType: "text",
cache: false,
success: processData
});
但是,当我提出请求时,我收到以下错误:
Error: not well-formed Source File: file:///projects/foo/programData.txt?_=1259694590361 Line: 1, Column: 2
为什么 jQuery 试图处理我的纯文本以及如何让它停止?
最佳答案
Firefox 正在尝试将文件解析为 HTML,然后再将其返回给 jQuery。
它尝试这样做有几个原因。如果按照 Jaanus 的建议,您使用的是 file://或 chrome://URL,那么它就没有 MIME 类型,并且假定为 HTML。或者您的 HTTP 服务器可能返回错误的 MIME 类型。
从 jQuery 1.5.1 开始,有一个 mimeType 选项可以覆盖 Firefox 看到的返回的 MIME 类型。因此您可以执行以下操作:
$.ajax({
mimeType: 'text/plain; charset=x-user-defined',
url: "programData.txt",
type: "GET",
dataType: "text",
cache: false,
success: processData
});
有关 mimeType 选项的文档位于 http://api.jquery.com/jQuery.ajax/
以下是 Firefox 级别发生的一些背景信息: https://developer.mozilla.org/En/XMLHttpRequest/Using_XMLHttpRequest#Receiving_binary_data
关于jquery - 为什么 jQuery 坚持我的纯文本不是 "well-formed"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1828228/