json编码在调用fb-post-to-wall函数后没有返回响应


The json encode did not return response after calling the function of fb post to wall

我有一个链接,通过jquery将数据发布到另一个页面vote.php

当我点击那个链接时,它会根据条件返回状态。如果该用户之前发布了投票,那么它会显示"已经投票"或"您的投票已发布"。

一切都很顺利。

我正在使用脸书贴墙sdk。

现在,当我从vote.php调用fb_publish_on_wall函数时,消息成功地发布到了我的fb墙上,但它没有像"Your vote posted"那样返回投票状态。

问题出在哪里。当我注释掉我调用fb_publish_on_wall函数的那一行时,它就可以正常工作了。

我认为jquery在调用fb_publish_on_wall函数后没有得到vote.php的响应。

我将如何解决此问题?

更新:这是fb_publish_on_wall函数

function fb_publish_on_wall($message,$link,$picture,$name,$description,$user_facebook2)
{
    $message = str_replace(array('<br />', '<br>'), "'n", $message);
        $description = str_replace(array('<br />', '<br>'), "'n", $description);
        $name = str_replace(array('<br />', '<br>'),"'n", $name);
        $link = str_replace(array('<br />', '<br>'), "'n", $link);
        global $facebook;
                $publishStream = $facebook->api("/$user_facebook2/feed", 'post', array(
                    'message' => "$message", 
                    'link'    => "$link",
                    'picture' => "$picture",
                    'name'    => "$name",
                    'description'=> "$description"
                    ));
        print $user_facebook2;

}

更新:vote.php。此文件很大。所以我只显示vote.php 中的那两行

echo json_encode(array("state"=>"<span style='color:#8DA326'>".l("Your vote posted").".</span>"));
    fb_publish_on_wall($message,$link,$picture,$name,$description,$user_facebook2); 

删除fb_publish_on_wall函数中的print语句,因为这也是返回值的一部分,并且会干扰您在jquery中解析的json_encoded返回值。