jquery - 为什么 jQuery 坚持我的纯文本不是 "well-formed"?

标签 jquery ajax

我正在进行 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/

相关文章:

javascript - Materializecss 菜单仅在一页上工作正常

JQuery 更改选择框的功能。只运行第一个函数

javascript - 如何在鼠标滚轮上进行水平滚动?

php - mysql_real_escape_string() -> stripslashes() -> jquery.append()

带有 firebase Push 方法的 javascript 在聊天页面中显示值两次或多次。每当我返回页面并来到聊天页面时

php - 如何将url参数传递给Vuejs

javascript - 拦截整个网站的鼠标点击坐标

javascript - jQuery load() 替换整个页面而不是将内容加载到 div 中

javascript - 使用资源 Controller 的 store 方法通过 ajax 调用将数据插入数据库

php - 使用 jquery ajax php mysqli 上传图像