1

我需要在对 YouTube api 的 ajax 调用中包含一个带有刷新令牌的标头。我正在尝试发送删除请求,以删除我帐户中的电影。这是我在单击按钮时触发的 ajax 调用

jQuery.ajax({
        type: 'DELETE',
        // must set api key
        url: 'https://www.googleapis.com/youtube/v3/videos?id='+ thisUniqueID + '&key=904907387177-qe517sq5dmmpebckjbmrhv4gvac9e2d1.apps.googleusercontent.com',
        success: function() {
        alert('your video has been deleted');
        },
        error: function() {
        alert('error processing your requst');
        }
    }); 

我在返回时收到 401(未经授权)错误,看来我需要在调用中包含我的访问令牌。我正在使用 google api 游乐场查看请求和响应,这就是发送的“请求”所显示的内容

DELETE https://www.googleapis.com/youtube/v3/videos?id=3242343&key={YOUR_API_KEY}

Authorization:  Bearer "access token"
X-JavaScript-User-Agent:  Google APIs Explorer

现在,从该请求来看,似乎有与请求一起发送的标头,其中包含访问令牌。这一定是我收到 401 错误的原因。如何将这些标头包含到我的 ajax 请求中,以便我的访问令牌与请求一起传递?谢谢

4

3 回答 3

4

我能够使用下面的代码传递一个标题:

    jQuery.ajax({
        type: 'DELETE',
        // must set api key
        url: 'https://www.googleapis.com/youtube/v3/videos?id='+ thisUniqueID +'&key=api_key_here',
beforeSend: function(xhr){xhr.setRequestHeader('Authorization', 'Bearer access_token_here');},
        success: function() {
        alert('your video has been deleted');
        },
        error: function() {
        alert('error processing your request');
        }
    }); 
于 2013-09-11T16:06:58.033 回答
2

您可以使用beforeSend方法和request.setRequestHeader. 在这里查看官方文档。

PS我应该把它作为评论发布吗?

于 2013-09-11T16:05:25.347 回答
0

尝试添加参数数据。

jQuery.ajax({
    type: 'DELETE',
    data: 'key=' + {YOUR_API_KEY},
    // must set api key
    url: 'https://www.googleapis.com/youtube/v3/videos?id='+ thisUniqueID + '&key=904907387177-qe517sq5dmmpebckjbmrhv4gvac9e2d1.apps.googleusercontent.com',
    success: function() {
    alert('your video has been deleted');
    },
    error: function() {
    alert('error processing your requst');
    }
});
于 2013-09-11T16:08:32.313 回答