【问题标题】:POST request with basic auth not working具有基本身份验证的 POST 请求不起作用
【发布时间】:2015-10-02 16:39:49
【问题描述】:

我正在尝试使用基本身份验证执行 POST 请求,以从 api 获取访问令牌。 我必须在请求正文中传递 grant_type 和我之前请求的代码,并在标头中使用用户名和密码传递基本身份验证。整个请求必须是 x-www-form-urlencoded;charset=UTF-8 编码.

似乎我在这里超出了我的深度,因为我不断收到错误的请求错误。

这是代码的相关部分

  var code_cont = examplecode;

  $.ajax({
    type: 'POST',
        url: 'https://example.com',
        data: {"grant_type":'authorization_code', 'code': code_cont},
        dataType: 'json',
        success: function(data) {
            console.log(data);
        },
        beforeSend : function(req) {
            req.setRequestHeader('Authorization', 'Basic username:password');
        },
  });

对于用户名和密码,我插入了相关信息。

谁能指出我哪里出错了? 非常感谢!

【问题讨论】:

    标签: jquery ajax post basic-authentication


    【解决方案1】:

    您可以在使用 jQuery 时捕获 Ajax 调用并添加适当的 base64 编码。

    beforeSend: function(xhr) { xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password)); };

    注意 - 出于安全原因(解码标头并窃取密码和用户名很简单),您应该在用户和服务器之间使用 SSL 或其他形式的加密。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-09
      • 1970-01-01
      • 2016-12-13
      • 2016-10-06
      • 2014-10-08
      • 1970-01-01
      相关资源
      最近更新 更多