1

我有这个代码,但它不工作。它对我说 ajax 帖子是成功的,但是当我查看 make refresh 我发现它不喜欢。

<?
if ($data->user_has_liked == false) 
{ 
?>

<a href="#" id="<?=$data->id;?>" class="like"><span class="<?=$data->id;?>">Like</span></a>
<? } else { echo 'Liked'; } ?>

<script type="text/javascript">
       $('a.like').click(function() {
            var mediaId = $(this).attr('id');
            $.ajax({
                url: "https://api.instagram.com/v1/media/" + mediaId + "/likes?callback=?",
                dataType: "jsonp",
                data: {
                    access_token: '<?=$access_token;?>',
                    _method: 'POST'
                },
                type: "POST",
                success: function(data, textStatus, jqXHR) {
                  $("."+mediaId+"").text('Liked');
                },
                error: function(jqXHR, textStatus, errorThrown) {
                     $("."+mediaId+"").text('Error!<br/>' + textStatus + ' - ' + errorThrown);
               }
             });
        });
</script>
4

1 回答 1

2

我正在构建类似的东西,最近遇到了这个问题。

即使您的请求是作为类型发送的:POST 请求本身实际上是作为 GET 发送的。这会导致您的请求成功返回而不喜欢任何内容。相反,它将返回该媒体 ID 的所有数据。

如果您将数据类型更改为 JSON 而不是 JSONP,您的请求应该如您所愿;但是,它可能需要一个需要 SSL 的 HTTPS 连接。

于 2013-10-01T00:13:03.950 回答