2012-07-23 58 views
1

我使用jquery-ajax方法POST发布授权标题,但是Firebug显示错误“401 Unauthorized”标头作为方法的参数。jQuery'POST'授权

我在做什么错?我该怎么做?

jQuery(function(dat) { 
dat.ajax({ 
    type: "POST", 
    url: url, 
    data: { 
    Latlng: 'coordinates.coordinates', 
    texts: 'text' 
    }, 
    success: function(dat) { 
    setMarkers(dat); 
    }, 
    dataType: "json" 
}); 
}); 

这是OAuth的方法,我忘了(我不认为这里是什么问题,因为我把它作为示例)。

VAR URL =“HTTPS://stream.twitter的.com/1 /状态/ filter.json“; VAR存取= { 令牌: “令牌”, tokenSecret: “token_secret”, consumerKey: “CONSUMER_KEY”, consumerSecret: “CONSUMER_SECRET” }; OAuth.completeRequest(message,accessor);

var message = { 
    action: url, 
    method: "POST", 
    parameters: { 
    track: 'nutella', 
    locations: '-180,-90,180,90' 
    } 
}; 

OAuth.completeRequest(message,accessor);
OAuth.SignatureMethod.sign(message,accessor); url = url +'?' + OAuth.formEncode(message.parameters);

我关闭了秘密数据。

+0

您是否检查过萤火虫中的要求标题?他们是否正确? – zerkms 2012-07-23 22:33:23

+0

你可以发布你的代码吗? – bokonic 2012-07-23 22:34:30

+0

你在做什么? – Wolfram 2012-07-23 22:34:31

回答

5

你必须发送一个额外的标题。我知道如果你试图打电话给谷歌API,他们要求标题为授权。这里是你如何通过jQuery来做到这一点。

function setHeader(xhr) { 

xhr.setRequestHeader('Authorization', '12345'); 
xhr.setRequestHeader('SomethingElse', 'abcdefg'); 

} 

$.ajax({ 

     url: 'www.google.com', 
    type: 'POST', 
    datatype: 'json', 
    success: function() { alert("Success"); }, 
    error: function() { alert('Failure!'); }, 
    beforeSend: setHeader 

}); 
+0

但Twitter流媒体API建议oAuth。我正在尝试授权这个。 – user1499804 2012-07-23 22:54:10

+0

无论你需要发送什么标题,你都会这么做。 XMLHttpRequest(这是你发送的)以这种方式设置标题。只是一个关键值对。 – Chris 2012-07-23 23:02:43

+0

Twitter有样品,所以只要看看他们在那里做什么。 – Chris 2012-07-23 23:05:22