我正在进行AJAX调用以检索一些纯文本:
$.ajax({
url: "programData.txt",
type: "GET",
dataType: "text",
cache: false,
success: processData
});
Run Code Online (Sandbox Code Playgroud)
但是,当我提出请求时,我收到以下错误:
错误:格式不正确源文件:file:///projects/foo/programData.txt?_ = 1259694590361行:1,列:2
为什么jQuery试图处理我的纯文本以及如何让它停止?
stu*_*eek 13
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
});
Run Code Online (Sandbox Code Playgroud)
Doc on mimeType选项位于 http://api.jquery.com/jQuery.ajax/
这里是什么在Firefox的水平是怎么回事一些背景: https://developer.mozilla.org/En/XMLHttpRequest/Using_XMLHttpRequest#Receiving_binary_data
Jaa*_*nus 11
您是通过HTTP在浏览器中加载页面还是仅将其作为常规文件打开?运行javascript的页面地址是以http:还是file:?开头的?我怀疑它是后者,并且在这种情况下Ajax调用的工作方式不同(参见下面的tvanfonsson的回复).如果您正在构建将在以后通过HTTP提供的Web应用程序,请尝试使用本地HTTP服务器运行您的页面.
| 归档时间: |
|
| 查看次数: |
8216 次 |
| 最近记录: |