我正在尝试在我的网站的客户端加载带有jQuery的facebook墙上的Feed。 我用于facebook请求的提要是:
http://www.facebook.com/feeds/page.php?format=json&id=40796308305
我尝试了以下方法:
1
$.getJSON('http://www.facebook.com/feeds/page.php?format=json&id=40796308305',function(data){
console.log(data)
});
返回错误:
XMLHttpRequest无法加载http://www.facebook.com/feeds/page.php?format=json&id=40796308305。 Access-Control-Allow-Origin不允许原点http://xxxx.local。
2
$.ajax({
url: 'http://www.facebook.com/feeds/page.php',
type: 'GET',
dataType: 'json',
data: {
id: '40796308305',
format: 'json'
},
success: function(data, textStatus, xhr) {
console.log(data);
}
});
返回相同的错误。
3
$.ajax({
url: 'http://www.facebook.com/feeds/page.php',
type: 'GET',
dataType: 'json',
data: {
id: '40796308305',
format: 'jsonp'
},
success: function(data, textStatus, xhr) {
console.log(data);
}
});
返回:
Uncaught SyntaxError:意外的令牌:
似乎正在解析Feed。
如何加载facebook json feed以便我可以像访问数组一样访问它?
答案 0 :(得分:1)
由于跨域策略限制,您无法在客户端执行此操作。
您可能需要为该数据创建自己的代理(页面数据的此端点不支持JSONP,并且不能与callback
参数一起使用)
答案 1 :(得分:0)
将数据类型从json
更改为jsonp
,因为它是跨域调用
答案 2 :(得分:0)
我看到这个帖子差不多6个月了,所以希望现在还不算太晚。
function fbInfo(user, id) {
var jurl = "https://graph.facebook.com/"+user+"&callback=?";
console.log(jurl);
$.getJSON(jurl, function(data) {
//do stuff
});
}
我在html页面中调用该函数并将facebook页面的用户名(“user”)传递给url变量“jurl”
使用$ .getJSON方法,然后随意操作数据。
这绝对有效,因为我正在使用它将商业信息从Facebook页面提取到我的网站。