我在使用API时非常新,我遇到了Instagram的新API问题。
对于不喜欢的函数,文档声明使用delete方法,但我一直收到错误:XMLHttpRequest cannot load URL. Response for preflight has invalid HTTP status code 405.
有趣的是,当我尝试使用curl完全相同的东西时,它会起作用。
例如,这是一种工作方法:curl -X DELETE https://api.instagram.com/v1/media/{media-id}/likes?access_token=ACCESS_TOKEN
但如果我尝试将其与javascript一起使用
if( user_has_liked ){
$.ajax({
crossDomain: true,
url: "https://api.instagram.com/v1/media/"+ photoId +"/likes?access_token=" + ACCESS_TOKEN,
method: 'DELETE',
success: function(data){
response = data.data;
document.getElementById(photoId).className = "fa fa-heart-o";
document.getElementById(photoId).onClick = function(){
subscribe(photoId, false);
}
}
});
}
我得到的全是405错误。
我尝试过启用CORS,但似乎无论如何都可以使用
如果有人能帮我解决这个问题,我将非常感激。
非常感谢!
答案 0 :(得分:1)
我解决了这个问题,使用POST方法发送请求,并像参数一样“删除”。然后它看起来像这样:
$.ajax({
url: "https://api.instagram.com/v1/media/"+ photoId +"/likes?access_token=" + ACCESS_TOKEN,
method: 'POST',
data: {_method: 'delete'},
success: function(data){
console.log(data);
}
});
字体: http://laravel.io/forum/02-20-2014-sending-a-delete-request-via-ajax