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 Playgroundをいじっていましたが、これは「リクエスト」が送信されていることを示しています

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 に答える