Javascript 如何使用密码和用户名从bitly获取访问令牌?

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 api获取访问令牌,但它显示无效的客户端授权错误。有人有相同的想法吗


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");
        }
    });