【发布时间】:2011-06-16 17:44:30
【问题描述】:
我正在进行多个返回 XML 数据的 AJAX 调用。当我取回数据时,我的成功函数(在 JQuery 中)尝试将 XML 转换为 JSON(使用插件)。我很快就被提醒了为什么我不能假设我会从我的 AJAX 请求中获取 VALID XML——因为事实证明一些 XML 响应是无效的——导致 JSON 转换失败、脚本失败等。 ..
我的问题是:
- 检查的最佳方法是什么 AJAX 响应上的有效 XML?要么, 我应该尝试 JSON 转换,然后快速检查是否 JSON 对象是否有效?
- 在对 XML 进行故障排除时,我发现在 XML 响应的最开头有一些奇怪的字符。这是我的 Firebug 中的一张图片:
我应该尝试检测并去除这些字符的响应还是我的编码可能有问题?
感谢任何帮助!如果需要更多信息,请告诉我!
【问题讨论】:
-
那些奇怪的字符被称为字节顺序标记 (BOM) - 这通常表示文本编码存在问题。没有作为答案发布,因为它不是答案,但这可能会帮助您找到答案。
-
我将支持@MrEyes 所说的内容,此外,还评论说应该静默解析和隐藏 BOM。而且,如果它被显示,它应该作为单个字符出现。这表明来自您的 Web 服务器的字符编码或 MIME 类型导致浏览器认为您正在向其提供 Latin-1 数据。您能否提供 Firebug 响应的完整标头?
-
@Cons - 响应标头查看源内容类型文本/html; charset=utf-8 服务器 Microsoft-IIS/7.5 X-Powered-By PHP/5.2.13, ASP.NET Date Thu, 27 Jan 2011 18:19:14 GMT Content-Length 42645
-
您可能希望将
header('Content-type: application/xml');添加到生成此 XML 的 PHP 脚本中,然后查看它是否可以自行运行。