javascript - 将 Wordpress 博客文章拉入 Angular JS

标签 javascript apache angularjs

我想从类似于 http://blog.neosavvy.com/?feed=rss2 的内容中提取博客提要用于不在同一域中的 Angular 应用程序。

我打算使用 ProxyPass,但是 ProxyPass 不能与/?feed=rss2 一起使用。是否有重写规则可以用来避免 Javascript 在获取不在同一 URL 中的内容时出现的跨域问题。

我使用 AngularJS 的服务来获取提要内容,就像使用任何其他服务一样。

这是我用来获取博客 rss 的代码:

$scope.getBlogPost = function() {
    $http({method:'GET', url:'http://blog.neosavvy.com/?feed=rss2'}).
        success(function (data, status, headers, config) {
            console.log("data returned");
        }).
        error(function (data, status, headers, config) {
            console.log("data not returned");
        });
}

这是我收到的错误 - 因此需要代理通行证或其他替代方法。

XMLHttpRequest 无法加载 http://blog.neosavvy.com/?feed=rss2 .产地http://local.something.com Access-Control-Allow-Origin 不允许。

最佳答案

你可以使用类似 YQL 的东西或 Google Feed API

我用后者做了一个例子,你可以在这里查看:http://plnkr.co/edit/Plb1fz?p=preview

您可以使用 Google Feed API 而不是使用 $http 服务,您的 Controller 将如下所示

app.controller('ctrl', function($scope) {
  var feed = new google.feeds.Feed("http://blog.neosavvy.com/?feed=rss2");
  feed.load(function(result) {
    $scope.$apply(function(){
      $scope.entries = result.feed.entries;
    })
  });
});

请注意,由于范围从 Angular 外部更改,因此需要调用 $apply 来通知 Angular。

一些注意事项,首先您需要将以下脚本添加到您的文档中

然后,由于必须首先加载 Google Feed API,因此有必要手动引导您的 Angular 应用

google.load("feeds", "1");
google.setOnLoadCallback(function(){     
    angular.bootstrap(document.body, ['app']);
});

由于提要包含 html,您将 ngSanitize 模块声明为依赖项

var app = angular.module('app', ['ngSanitize']);

要显示提要中的条目,您可以使用 ngRepeater 遍历收到的条目,当然还可以使用 ng-bind-html 指令清理 html .

<div ng-repeat='entry in entries'>
  <h1>{{entry.title}}</h1>
  <div ng-bind-html= "entry.content"></div>
</div>

关于javascript - 将 Wordpress 博客文章拉入 Angular JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13782756/

相关文章:

apache - .htaccess 的 RewriteRule,末尾带有斜杠

javascript - 了解 AngularJS 中 $scope 的层次结构?

apache - 如何使用 .htaccess 提供预压缩的 gzip/brotli 文件

javascript - <HTML> 先前日期验证

javascript/jquery - 隐藏从弹出窗口控制的父选项卡中的元素

javascript - 在 JavaScript 中顺序触发多个随机超时

apache - 如何使用 Apache 运行多个启用 SSL 的网站以进行本地开发

angularjs - Angular - 工厂 http post 返回未定义的值

javascript - Angular 2+ 中的 Angular 粘性状态

javascript - 更改标签值时出错