使用新的facebook图形api,ajax调用返回null(空)
我正在为facebook试用新的图形api。 我正在尝试使用jquery ajax获取一些数据。 这是我的javascript代码示例,非常基本…
var mUrl = 'https://graph.facebook.com/19292868552'; $.ajax({ url: mUrl, dataType: 'json', success: function(data, status) { $('#test').html(data); alert(data); }, error: function(data, e1, e2) { $('#hello').html(e1); } });
url是一个不需要访问令牌的页面(使用浏览器尝试),但success函数返回一个空对象或null。
我究竟做错了什么? 感谢所有的帮助!
我已经覆盖了这个并且之前问了这个问题。 我做了一个快速的教程 ,它涵盖了这一点并解释了一切 。
简而言之:根据同源策略,JSON不适用于跨域使用。 然而,解决方法是使用JSONP,我们可以使用facebook的图形api中支持的回调参数在jQuery中执行。 我们可以通过在您的url上添加参数来实现
https://graph.facebook.com/19292868552?callback=?
通过使用回调=? jQuery自动更改? 将json包装在函数调用中,然后允许jQuery成功解析数据。
还可以尝试使用$ .getJSON方法。
我试图做类似的事情,在测试中我能够得到一个我在jsFiddle上保存的工作结果: http : //jsfiddle.net/8R7J8/1/
脚本:
var facebookGraphURL = 'https://graph.facebook.com/19292868552'; $.ajax({ url: facebookGraphURL, dataType: 'json', success: function(data, status) { $( '#output' ).html('Username: ' + data.username); }, error: function(data, e1, e2) { $( '#output' ).html(e2); } })
HTML:
BorkBorkBork
希望有所帮助! 🙂
… Graph API支持JSONP。 只需将callback = methodname作为额外参数传递,返回的内容将包含在函数调用中,允许您使用动态插入的脚本标记来获取该数据。 http://forum.developers.facebook.com/viewtopic.php?pid=253084#p253084
由于同源策略 ,您不能执行类似的跨域AJAX请求。 相反,使用Facebook的JavaScript SDK ,它基于脚本标记。