【问题标题】:RSS feed response does not come in original XML formatRSS 提要响应不是原始 XML 格式
【发布时间】:2014-03-03 23:17:27
【问题描述】:

我正在使用 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>

【问题讨论】:

    标签: javascript jquery html rss cross-domain


    【解决方案1】:

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

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

    您需要在第 19 行编辑 jquery.xdomainajax.js 副本:

    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 提要中的第一项。

    【讨论】:

      猜你喜欢
      • 2011-06-08
      • 1970-01-01
      • 2017-05-24
      • 1970-01-01
      • 2021-10-19
      • 2014-08-08
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      相关资源
      最近更新 更多