我见过的职位如这一个,显示你可以得到JSON
的公开Facebook页面的墙。但是他们没有给出有效的例子。我试着得到它$.ajax
和jsonp
,但我得到了Chrome的一个哑剧错误和Safari中不同的错误,但在Firefox的另一个不同的错误。我错过了什么?
我创建了一个jsFiddle HERE来记录控制台,代码如下
$.ajax({
url: 'https://www.facebook.com/feeds/page.php?id=54971236771&format=JSON',
type: 'get',
dataType: 'jsonp',
error: function (jqXHR, textStatus, errorThrown) {
console.log('Problem with call to get list of articles\n',errorThrown);
},
success: function (data) {
console.log('call success, data is\n', data);
}
});
当前浏览器中禁止跨域JSON请求。JSON请求如下所示:
{ foo: 'bar' }
而且您获得的文件是纯JSON,所有当前浏览器均禁止使用。但是允许JSONP。JSONP看起来像:
mycallback({ foo: 'bar' });
当您的网址看起来像是https://www.facebook.com/feeds/page.php?id=54971236771&format=JSON
JSON时。
要获取JSONP,您需要使用facebook API url,并且需要从facebook获取特殊的facebook API令牌:
https://graph.facebook.com/54971236771/feed?access_token=YOUR-TOKEN-GOES-HERE
实际的网址将如下所示:
https://graph.facebook.com/54971236771/feed?access_token=YOUR-TOKEN-GOES-HERE&callback=jQuery110208932981239631772_1401824402598&_=1401824402599
整个代码如下:
$.ajax({
url: 'https://graph.facebook.com/54971236771/feed?access_token=YOUR-TOKEN-GOES-HERE',
type: 'get',
dataType: 'jsonp',
error: function (jqXHR, textStatus, errorThrown) {
console.log('Problem with call to get list of articles\n', errorThrown);
},
success: function (data) {
console.log('call success, data is\n', data);
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句