Javascript 如何使用密码和用户名从bitly获取访问令牌?
我试图通过提供用户名和密码从bitly api获取访问令牌,但它显示无效的客户端授权错误。有人有相同的想法吗Javascript 如何使用密码和用户名从bitly获取访问令牌?,javascript,jquery,ajax,json,token,Javascript,Jquery,Ajax,Json,Token,我试图通过提供用户名和密码从bitly api获取访问令牌,但它显示无效的客户端授权错误。有人有相同的想法吗 Bitly文档:您正在将用户名与授权标头连接起来 您的授权和内容类型应该放在headers对象中 jQueryAjax方法上没有“type”属性,您可能指的是“method” 此外,不能同时发送数据类型:'json'和将内容类型设置为'application/x-www-form-urlencoded' $.ajax({ url: 'https://api-ss
Bitly文档:您正在将用户名与授权标头连接起来 您的授权和内容类型应该放在headers对象中 jQueryAjax方法上没有“type”属性,您可能指的是“method” 此外,不能同时发送数据类型:'json'和将内容类型设置为'application/x-www-form-urlencoded'
$.ajax({
url: 'https://api-ssl.bitly.com/oauth/access_token',
type: 'POST',
contentType: 'application/x-www-form-urlencoded',
dataType: 'json',
data: { Authorization: "Basic " + btoa('myusername' + ":" + 'mypassword@123') },
success: function (result) {
console.log(result);
},
error: function () {
alert("Cannot get data");
}
});
这应该可以做到修复@goncalomarques答案: 已删除顶级内容类型和数据类型 删除数据对象,否则用户名和密码将以明文形式发送,除标题中的哈希用户名和密码外 将methdo重命名为method 请注意,显式使用btoa获取base64编码的哈希值在旧的IE版本中不起作用 $.ajax{ 网址:'https://api-ssl.bitly.com/oauth/access_token', 方法:“POST”, 标题:{ “授权”:“基本”+btoaYOURUSERNAME+:“+YOURPASSWORD, “内容类型”:“应用程序/x-www-form-urlencoded”, }, 成功:结果{ 成功; console.logresult; }, 错误:functionresponse{ console.log无法获取数据; console.logresponse; }
};您好,它不能与您提供的代码一起工作。此外,它在$.Serialized上的给定错误此代码示例不起作用,但它确实包含一些关键点。请参阅我的答案,以获得简明有效的示例。
$.ajax({
url: 'https://api-ssl.bitly.com/oauth/access_token',
methdo: 'POST',
contentType: '',
dataType: 'json',
headers: {
'Authorization' : 'Basic ' + [INSERT YOUR HASH HERE],
'Content-Type' : 'application/x-www-form-urlencoded',
}
data: { $.serialize({
username: YOURUSERNAME,
password: YOURPASSWORD
})},
success: function (result) {
console.log(result);
},
error: function () {
alert("Cannot get data");
}
});