2013-09-11 2 views
1

Мне нужно включить заголовок с токеном обновления в ajax-вызове на api YouTube. Я пытаюсь отправить запрос на удаление, чтобы удалить фильм, который у меня есть в моей учетной записи. Это мой вызов 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 (неавторизованный) Erorr по возвращении, и кажется, что мне нужно, чтобы включить мой маркер доступа в вызове. Я играл вокруг с апи площадка Google смотрит на запросе и ответ, и это то, что показывает, как «запрос» отправляются из

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

я смог передать заголовок, используя этот код ниже:

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'); 
     } 
    }); 
+0

В чем разница между использованием функции beforeSend для хранения заголовка и добавления заголовков: {'Авторизация': 'Bearer access_token_here' 'Content-Type': 'application/json'} "в вызов ajax? –

2

Вы можете использовать метод beforeSend и request.setRequestHeader. Взгляните на официальную документацию here.

P.S. Должен ли я опубликовать его в качестве комментария?

+0

Благодарим за быстрый ответ! – EHerman

+0

@EHerman добро пожаловать! :) – Mahdi

0

Попробуйте добавить данные paramenter.

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'); 
    } 
}); 
Смежные вопросы