我有这个代码,但它不起作用。它告诉我ajax帖子是成功但当我看起来刷新时我看到它不喜欢。
<?
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>
答案 0 :(得分:2)
我正在构建类似的东西并且最近遇到了这个问题。
即使您的请求是作为类型发送的:POST请求本身实际上是作为GET发送的。这会导致您的请求返回成功而不喜欢任何内容。相反,它将返回该媒体ID的所有数据。
如果您将数据类型更改为JSON而不是JSONP,则您的请求应该按照您的意愿工作;但是,它可能需要HTTPS连接,需要SSL。