使用jQuery发布到YouTube API

时间:2010-08-31 16:44:20

标签: javascript ajax jquery youtube-api

我正在尝试向youtube的google authSub发帖请求。我使用jQuery for AJAX posts等。当我发布POST时,我收到405错误:“405 Method Not Allowed”。

这是我的js:

   $.ajax({
      type: 'POST',
      url: "https://www.google.com/accounts/AuthSubRequest",
      beforeSend: function(xhr){
         xhr.setRequestHeader('X-GData-Key', 'key="' + ytKey + '"');
      },
      success: function(oData){
         //alert(oData);
      },
      scope: 'http://gdata.youtube.com',
      alt: 'json',
      next: 'http://' + globalBrand + '/sitecreator/view.do',
      session: 1
   });

我在API中使用的页面是here

以下是错误的样子: alt text

3 个答案:

答案 0 :(得分:1)

请求的数据参数放错位置,请参阅以下内容:

$.ajax({
      type: 'POST',
      url: "https://www.google.com/accounts/AuthSubRequest",
      data: {
        scope: 'http://gdata.youtube.com',
        alt: 'json',
        next: 'http://' + globalBrand + '/sitecreator/view.do',
        session: 1
      },
      beforeSend: function(xhr){
         xhr.setRequestHeader('X-GData-Key', 'key="' + ytKey + '"');
      },
      success: function(oData){
         //alert(oData);
      }

   });

现在它可能是你另外做错的事情,但这肯定需要纠正。

答案 1 :(得分:0)

啊,这是解决问题的方法。如果我建立了url请求并将其指定为锚点的href或在window.open()中调用它;它有效。

window.open('https://www.google.com/accounts/AuthSubRequest?scope=http://gdata.youtube.com&next=http://' + globalBrand + '/sitecreator/view.do&session=1');

至于为什么jQuery使用ajax的方法被拒绝,我不知道。这似乎也是一个问题elsewhere

答案 2 :(得分:0)

在JQuery中解决错误的HTTP HEADER OPTIONS,这个请求对我来说没问题:

var word = 'search+word';
$.ajax({
        type: "GET",
        url: "http://gdata.youtube.com/feeds/api/videos?q="+word+"&max-results=10&alt=json-in-script&format=5,
        cache: false,
        dataType:'jsonp',
        success: function(data){
                //json 'data' var treatment
        },
       error: function(XMLHttpRequest, textStatus, errorThrown, data){
            alert("Not able to fetch the data due to feed unavailability!!!");
        }
});

参考:http://www.mohammedarif.com/?p=180