我有这段代码,但它不起作用。它告诉我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>
我正在构建类似的东西,最近遇到了这个问题。
即使您的请求是以类型POST发送的,但请求本身实际上是以GET发送的。这会导致您的请求在不喜欢任何内容的情况下成功返回。相反,它将返回该媒体ID的所有数据。
如果您将数据类型更改为JSON而不是JSONP,那么您的请求应该可以随心所欲地工作;但是,它可能需要需要SSL的HTTPS连接。