一尘不染

如何在AngularJS资源中使用JSONP

angularjs

我正在尝试将json对象导入变量。我根据教程使用服务。

我收到意外的令牌错误,因为我不应该使用 $scope.news = JsonSource.feed();-但我真的不知道该使用什么。我用谷歌搜索了3个小时,发现只有$ http。或$
json。答案,但是我觉得可以做得更容易-更清晰。

(完美的解决方案是$scope.news = JsonSource.feed().entries; D

服务文件:

var AAAServices = angular.module('AAAServices', [
    'ngResource'
]);

AAAServices.factory('JsonSource', ['$resource',
  function($resource) {
    return $resource('https://www.facebook.com/feeds/page.php', {}, {
      feed: {method:'JSONP', {format: 'json', id:'459908', callback : JSON_CALLBACK}, isArray:false}
      });
  }]);

控制器文件:

var AAAControllers = angular.module('AAAControllers', [])
AAAControllers.controller('newsCtrl', ['$scope', 'JsonSource', 
  function newsCtrl($scope, JsonSource) {
     $scope.news = JsonSource.feed();
}]);

json文件(几乎; D)

{
   "title": "Tytuł",
   "link": "https:\/\/www.facebook.com\/",
   "entries": [
      {
         "title": " news 1",
         "id": "1"
      },
      {
         "title": " news 2",
         "id": "2"
     }
   ]
}

编辑:

我将$
resource(’file.json更改为https://www.facebook.com/feeds/page.php-这样您就可以检查它是json还是jsonp


阅读 189

收藏
2020-07-04

共1个答案

一尘不染

这是对那些(与我一样)认为如果某些内容在浏览器中有效的人应该在服务器脚本中起作用的人的答案。

  1. Facebook为墙内容提供了非常好的json:

https://www.facebook.com/feeds/page.php?format=json&id=xxxx

  1. 但是由于跨域策略限制,您无法从nodejs获得它

所以,现在我必须搜索facebook墙的jsonp流.........。

2020-07-04