javascript - RSS 提要响应不是原始 XML 格式

标签 javascript jquery html rss cross-domain

我正在使用 jquery.xdomainajax.js 进行跨域调用。但是,获取返回的 RSS 提要的结果不是原始 XML 格式。它使得无法解析。原始 RSS 源正确且有效。

这是我现在正在使用的:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
  "http://www.w3.org/TR/html4/strict.dtd">
<html dir="ltr" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<link rel="stylesheet" type="text/css" media="screen" href="css/reset.css">
<link rel="stylesheet" type="text/css" media="screen" href="css/main.css">
<script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript" src="js/jquery.xdomainajax.js"></script>
</head>
<body>
<div id="wrapper"> </div>
</body>
<script type="text/javascript">
    $(document).ready(function() {
          $.get('http://example.com/feed/', function(res) {
              var string = res.responseText;
              alert(string);
          });
    });
  </script>
</html>

最佳答案

Cross domain mod for jQuery您正在使用的是 YQL下面。

默认情况下,此 mod 将返回一个 HTML 文件,因为它是从“html”YQL 数据表中获取的,最终将其包装在 HTML 中。您希望它从“rss”或“feed”数据表类型中获取。

对于 jquery.xdomainajax.js 的副本,您需要在第 19 行进行编辑:

query = 'select * from html where url="{URL}" and xpath="*"';

至以下内容

query = 'select * from rss where url="{URL}"';

第 59 行,来自

responseText: (data.results[0] || '')
  // YQL screws with <script>s
  // Get rid of them
  .replace(/<script[^>]+?\/>|<script(.|\s)*?\/script>/gi, '')

responseText: data.results

如果您不进行第二次更改,您将只能获得 RSS 提要中的第一项。

关于javascript - RSS 提要响应不是原始 XML 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20486163/

相关文章:

javascript - 为 "scrolling"页面设置(图像的)背景大小

javascript - 使用javascript专注于文本框

html - 适用于 Android 的 Gmail 客户端不会将我的 css 样式应用于电子邮件

html - 如何使复选框看起来像按钮并适合所有屏幕尺寸

javascript - 为什么这个 Angular 日期选择器不会出现并正常工作?

javascript - 在 D3 中使用独立数组中的数据创建折线图?

JavaScript 问题 IE 11

c# - 动态加载html代码

jquery - 仅在 _some 字段上通过 Enter 键禁用表单提交

html - BeautifulSoup : extracting from deeply nested <div>'s