Instagram API。 XMLHttpRequest无法加载URL。预检的响应具有无效的HTTP状态代码405

时间:2016-04-12 19:31:20

标签: javascript jquery ajax rest instagram-api

我在使用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,但似乎无论如何都可以使用

如果有人能帮我解决这个问题,我将非常感激。

非常感谢!

1 个答案:

答案 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