我正在尝试向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。
以下是错误的样子:
答案 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!!!");
}
});