1

好的,我正在使用 PHP 和 Facebook JS API 使用 jQuery 的 $.ajax() 函数在用户页面上发布故事,除了 Chrome 之外,它在任何地方都可以正常工作。

Chrome 返回错误“SyntaxError: Unexpected Token:”。

我让它在错误时提醒 XHR 响应,如下所示:

{ "id" : "30800681_37922830145443" }

这是有效的 JSON。这不可能是我对 JSON 结果做错的任何事情,因为它会在任何解析完成之前抛出错误(即,它没有进入“成功”函数)。

这背后的代码如下:

if ($('#post-facebook').is(":checked")) {
    // Do the FB post

    $.ajax({
        type: "POST",
        url: "https://graph.facebook.com/<?= $this->session->userdata('fb_id') ?>/feed",
        data: "message=" + $("#upload-caption").val() + "&access_token=<?= $this->session->userdata('fbtoken'); ?>&app_id=<?= $this->config->item('appId') ?>&link=" + post_url,
    success: function(msg) {

            // Save the FB post ID to the DB
            var result = $.parseJSON(msg);
            var result_array = result.id.split("_");

            // Do more stuff here, but it's not even getting into this success function
        },                                         
        error: function(xhr,ajaxOptions,thrownError) {

            // This is what's executing because the thrown error is getting alerted
            alert(thrownError);
        }
    });
}

当我添加dataType: "json"Ajax 参数时,它仍然通过 Error 函数,但thrownError参数为空。

我正在拔头发……有什么建议吗?提前致谢,

4

1 回答 1

1

无法将 jQuery 与 post 一起使用,因为 POST 需要 CORS 支持,而这并不容易获得。改用FB.api它,它会以更好的方式为您处理所有这些。

于 2012-09-19T01:03:20.030 回答