RSS提要响应不是以原始XML格式提供的

RSS feed response does not come in original XML format

本文关键字:XML 格式 原始 响应 RSS      更新时间:2024-06-17

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

您正在使用的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提要中的第一个项目。