我正在创建一个类似 facebook 的墙(流)以放置在我的网站上。 该组件将从特定页面的墙上读取所有帖子并通过图形 api 显示它们。 我还希望用户能够喜欢显示在“墙上”的帖子。
到目前为止,我有一个脚本,它使用图形 api 来获取帖子的 JSON 列表,我还有一个 PHP 文件,它可以喜欢在 post_id 查询字符串参数中提交 ID 的帖子,而这个确实有效。我看到 LIKE 已提交。
要调用此 PHP 文件,我使用 jQuery ajax:
function do_likes(post_id) {
$.ajax({
type: "POST",
url:"http://www.p-art.co.il/facebook_test/action.php?post_id=" + post_id
});
Firebug 没有显示任何错误,但另一方面,没有发布 LIKE。 我已经搜索了几个小时,但找不到调用 PHP 文件的正确方法,无法使 FB.api 调用正常工作。
提前致谢。 -Elad
最佳答案
使用 HTTP POST,数据通常从带有 enctype 的表单输入发送 设置为 application/x-www-form-urlencoded
格式。因此,对于 AJAX POST,我们通常也会以这种格式发送数据,而不是作为查询字符串参数发送数据,这就是通常使用 HTTP GET 请求发送数据的方式以及您在上面发送数据的方式。
如果您将代码更改为
function do_likes(post_id) {
$.ajax({
type: "POST",
url:"http://www.p-art.co.il/facebook_test/action.php",
data : { post_id : post_id }
});
}
它应该按预期工作(我不熟悉 PHP,但我假设您要发布到的 URL 需要 application/x-www-form-urlencoded
格式的数据)。与 jQuery.ajax()
,如果您将数据对象设置为要发送到服务器的键/值对,jQuery 将负责根据您使用的 HTTP 请求类型为您提供正确的 enctype
(如有必要,您可以覆盖 enctype
,但通常这不是必需的,在大多数情况下,默认值就是您所需要的)。
此外,您可能希望设置一个回调函数,以便在 AJAX 发布成功完成后调用。为此,将 success
属性添加到传递给 $.ajax()
调用的对象。
关于javascript - facebook - 通过 ajax 点赞帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5057315/